2013-11-23 59 views
2

我使用hclust算法一直是,這裏是代碼:R中hclust使用的聚類算法是什麼?

hc = hclust(dist(mydata)) 
## tweeking some parameters for plotting a dendrogram 
# set background color 
op = par(bg="#DDE3CA") 
# plot dendrogram 
plot(hc, col="#487AA1", col.main="#45ADA8", col.lab="#7C8071", 
    col.axis="#F38630", lwd=3, lty=3, sub='', hang=-1, axes=FALSE) 
# add axis 
axis(side=2, at=seq(0, 400, 100), col="#F38630", 
    labels=FALSE, lwd=2) 
# add text in margin 
mtext(seq(0, 400, 100), side=2, at=seq(0, 400, 100), 
     line=1, col="#A38630", las=2) 
par(op) 

什麼集羣的變化hclust使用,因爲我想以編程方式實現它?與維基百科上的實現一樣嗎:http://en.wikipedia.org/wiki/Hierarchical_clustering

+3

您能否更具體地瞭解您從「hclust」文檔和/或源代碼中無法理解的內容?否則,就好像你要求別人爲你做這項工作。 –

+0

@Joshua Ulrich不喜歡自己實現這個算法,但我想使用與R提供的算法相同的算法,因此我的實現結果將與R的結果相匹配。我只想記錄在R中如何實現hclust。如果hclust的R文檔是最好提供這個然後那很好。 –

+4

那麼,文檔是一個明顯的起點,它列出了'hclust'可以使用的不同聚集方法。你還想要什麼? –

回答

4

但是請注意,代碼已經在R中調整了多次(即改進了!); R中的算法現在更加通用,並且在一個地方比上面提到的原始Statlib代碼更有效率。只要按照Joshua Ulrich的建議:在閱讀幫助文檔之後,而不是閱讀R的源代碼,而不是statlib中的原始代碼。由於R使用基於http的svn,因此您可以通過瀏覽器查看所有R源代碼。這一個是 http://svn.r-project.org/R/trunk/src/library/stats/src/hclust.f

一個進一步的注意:agnes()在包集羣提供更多樣化的凝聚聚類方法;值得注意的是在下一個版本cluster中更多的是全班。 所有這些也是svn repositing和可用類似,爲agnes在 http://svn.r-project.org/R-packages/trunk/cluster/src/twins.c (也從舊Fortran翻譯,但現在更可讀)。