Предположим, что mat_pages [] содержит страницы в столбцах (которые вы хотите кластеризовать) и отдельных лиц в строках. Вы можете кластеризовать страницы на основе отдельных данных в Rby, используя следующую команду:
pc <- prcomp(x=mat_pages,center=TRUE,scale=TRUE)
Матрица нагрузок - это матрица собственных векторов разложения данных SVD. Они дают относительный вес каждой страницы при подсчете баллов. Нагрузки с большими абсолютными значениями оказывают большее влияние на определение показателя соответствующего основного компонента.
Тем не менее, я также должен указать на то, что использование PCA для кластеризации страниц не оправдано. Причиной этого является то, что нагрузки придают PAGES больший вес с более высокой вариацией, независимо от того, является ли эта вариация действительной из-за содержания PAGE или по какой-либо другой причине (может быть технической или индивидуальной вариацией). Нагрузки не обязательно отражают истинные различия между группами, которые (возможно) ваш основной интерес. НО, эта кластеризация действительно отражает различия в группе при условии, что все страницы имеют одинаковую дисперсию (я не знаю, является ли это допустимым предположением).
Если у вас есть мощные вычислительные средства (которые могут быть возможны с учетом вашего размера данных), использование иерархических моделей может быть хорошей идеей. В R это можно сделать с помощью пакета lme4.
Что делать после того, как вы набрали очки?
Это грубое предположение, и анализ во многом зависит от того, как выглядят данные. Кроме того, я предполагаю, что этот процесс будет крайне невозможен для группировки данных, которые у вас есть.
pc.col <- paste("page", 1:27000, sep=".")
pdf("principle-components.pdf")
plot(pc$x[,1:2]) ## Just look at the 1st two loadings (as you can see the groupings in a plane)
dev.off()
Надеемся, что это может дать вам представление о том, как данные группируются в.
Предупреждение: это не то, что я бы порекомендовал.
Моя рекомендация:
Подобные проблемы часто возникают в геномике. В вашем случае страницы соответствуют генам, а индивиды соответствуют пациентам (в основном индивиды имеют то же значение, что и в геномике)
Вы хотите кластеризовать страницы на основе данных.
Вы можете использовать много кластеризованных пакетов в R, на которые были указаны другие ответы. Основная проблема с пакетами, как hclust, заключается в том, как определить количество кластеров. Некоторые из моих любимых:
- pvclust (Предоставляет вам кластеры, а также дает p-значение для каждого кластера. Используя p-значение, вы можете определить статистически значимые кластеры. Проблема : требует больших вычислительных мощностей, и я не уверен, будет ли она работать с данными вашего размер)
- hopach (Дает вам приблизительное количество кластеров и кластеров)
- В Bioconductor доступны другие пакеты, пожалуйста, проверьте их в представлении задач.
Вы также можете использовать кластерные алгоритмы, такие как k-means и т. Д. Я уверен, что я видел ветку на этом форуме о кластеризации. Ответы были очень подробными. Тал Галили спросил, правильно ли я помню.