2013-11-23 2 views
2

Я использовал алгоритм hclust, вот код:Что такое алгоритм кластеризации, используемый hclust в R?

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

@ Джошуа Ульрих плохо реализует сам алгоритм, но я хочу использовать тот же, что и R, поэтому результаты моей реализации будут соответствовать результатам R. Я просто хочу, чтобы документация о том, как hclust реализуется в R. Если R-документация для hclust лучшее, чтобы обеспечить это, тогда это прекрасно. –

+4

Ну, документация является очевидным местом для начала, и в ней перечислены различные методы агломерации, которые может использовать «hclust». Что вы еще хотите? –

ответ

4

Реализация на основе кода Fortran от Fionn Murtagh выполнена на основе hclust. Он депонирован в statlib: http://lib.stat.cmu.edu/S/multiv. Все методы описаны в его рукописи «Многомерный анализ данных с помощью Fortan, C и Java Code», вы можете найти его here. Также его ресурсный сайт http://www.classification-society.org/csna/mda-sw/ является хорошей отправной точкой. Надеюсь это поможет.

4

Обратите внимание, что код был изменен (то есть улучшен!) В R несколько раз; алгоритмы в R теперь более универсальны и, в одном месте, значительно более эффективны, чем исходный код Statlib, упомянутый выше. Просто следуйте советам Джошуа Ульриха: прочитав справочную документацию, скорее прочитайте исходный код R, чем оригинал в statlib. Поскольку R использует svn на основе http, вы можете увидеть весь исходный код R через ваш браузер. Этот номер http://svn.r-project.org/R/trunk/src/library/stats/src/hclust.f

Еще одно примечание: agnes() в кластере пакетов обеспечивает еще более универсальные агломерационные методы кластеризации; особенно в целом, в следующем выпуске cluster. Все они также доступны и доступны для svn, для agnes в http://svn.r-project.org/R-packages/trunk/cluster/src/twins.c (также переводится с старого Fortran, но теперь немного читаем).

Смежные вопросы