Припустимо, що mat_pages [] містить сторінки в стовпцях (які потрібно кластеризувати) та осіб у рядках. Ви можете кластерувати сторінки на основі окремих даних у Rby, використовуючи таку команду:
pc <- prcomp(x=mat_pages,center=TRUE,scale=TRUE)
Матриця навантажень - це матриця власних векторів розкладання даних SVD. Вони дають відносну вагу кожної PAGE у розрахунку балів. Навантаження з більшими абсолютними значеннями має більший вплив при визначенні балів відповідної принципової складової.
Однак я також повинен зазначити короткий час використання 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 (дає оціночну кількість кластерів та кластерів)
- Є інші пакети, доступні в біокондукторі, будь ласка, перегляньте їх у вікні завдання.
Ви також можете використовувати кластеризацію альгів, таких як k-означає і т. Д. Я впевнений, що на цьому форумі я бачив нитку про кластеризацію. Відповіді були дуже детальними. Це запитав Тал Галілі, чи правильно я пам’ятаю.