Mari kita asumsikan mat_pages [] berisi halaman di kolom (yang ingin Anda klaster) dan individu di baris. Anda dapat mengelompokkan halaman berdasarkan data individual di Rby menggunakan perintah berikut:
pc <- prcomp(x=mat_pages,center=TRUE,scale=TRUE)
Matriks pemuatan adalah matriks vektor eigen dari dekomposisi data SVD. Mereka memberi bobot relatif setiap HALAMAN dalam perhitungan skor. Muatan dengan nilai absolut yang lebih besar memiliki pengaruh lebih besar dalam menentukan skor komponen prinsip yang sesuai.
Namun, saya juga harus menunjukkan kekurangan penggunaan PCA ke halaman cluster. Alasan untuk ini adalah bahwa pemuatan memberi bobot lebih besar ke PAGES dengan variasi lebih tinggi, terlepas dari apakah variasi ini sebenarnya karena konten PAGE atau alasan lain (mungkin variasi teknis atau individual). Pemuatan tidak selalu mencerminkan perbedaan nyata antara kelompok, yang (mungkin) menjadi minat utama Anda. NAMUN, pengelompokan ini benar-benar mencerminkan perbedaan dalam grup dengan asumsi bahwa semua halaman memiliki varian yang sama (saya tidak tahu apakah ini asumsi yang valid).
Jika Anda memiliki fasilitas komputasi yang kuat (yang dimungkinkan dengan ukuran data Anda) - menggunakan model hierarkis mungkin ide yang bagus. Dalam R, itu bisa dilakukan menggunakan paket lme4.
Apa yang dilakukan setelah Anda mendapat skor?
Ini adalah saran kasar dan analisis sangat tergantung pada bagaimana data terlihat. Juga, saya kira proses ini akan sangat tidak layak untuk mengelompokkan data yang besarnya Anda miliki.
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()
Semoga, ini bisa memberi Anda gambaran tentang bagaimana data dikelompokkan menjadi.
Peringatan: ini bukan yang saya sarankan.
Rekomendasi saya:
Masalah-masalah seperti ini sering muncul dalam genomik. Di halaman kasus Anda berhubungan dengan gen dan individu berhubungan dengan pasien (pada dasarnya individu memiliki makna yang sama seperti dalam genomik)
Anda ingin mengelompokkan halaman berdasarkan data.
Anda dapat menggunakan banyak paket pengelompokan dalam R dan telah ditunjukkan dalam jawaban lain. Masalah mendasar dengan paket adalah seperti hclust adalah bagaimana menentukan jumlah cluster. Beberapa yang favorit saya adalah:
- pvclust (Memberikan Anda cluster dan juga memberikan nilai-p untuk setiap cluster. Menggunakan nilai-p Anda dapat menentukan cluster yang signifikan secara statistik. Masalah : membutuhkan banyak daya komputasi dan saya tidak yakin apakah itu akan bekerja dengan data dari Anda ukuran)
- hopach (Memberi Anda perkiraan jumlah cluster, dan cluster)
- ada paket lain yang tersedia di Bioconductor, silakan periksa di tampilan tugas.
Anda juga dapat menggunakan clustering algos seperti k-means dll. Saya yakin saya melihat utas di forum ini tentang clustering. Jawabannya sangat rinci. Ditanyakan oleh Tal Galili apakah saya ingat dengan benar.
Ini tentu saja merupakan masalah pengelompokan. Lihat
cluster
paket Rs untuk mendapatkan gambaran umum opsi algoritma (pam
danagnes
merupakan pilihan terbaik untuk memulai; mereka mewakili dua aliran utama dalam pengelompokan - centroid dan hierarkis ).Masalah utama untuk menggunakan pengelompokan pada data Anda adalah untuk menentukan ukuran kesamaan yang baik antara halaman; sederhana adalah menggunakan jarak Manhattan; sedikit lebih kompleks untuk menghitung jumlah pemirsa umum dan menormalkannya dengan, katakanlah, rata-rata jumlah pemirsa dari halaman pertama dan kedua - ini harus membungkam efek popularitas.
sumber
Pengurangan dimensi pada dasarnya menerapkan algoritma pengelompokan ke atribut (kolom). Karena dimensi dataset Anda yang cukup besar, Anda dapat mencoba menggunakan SOM (peta pengorganisasian sendiri / jaringan Kohonen) untuk membuat peta untuk individu atau halaman. Anda kemudian dapat melihat apakah pola tersebut bermakna (dapat ditafsirkan).
sumber
Jika Anda melakukan PCA, saran saya adalah menyaring komponen lain secara singkat daripada hanya dua yang pertama. Setelah Anda memiliki
prcomp
objekpc
(lihat posting suncoolsu), Anda dapatplot(pc)
melihat jumlah varians yang dikaitkan dengan komponen utama yang berbeda. Anda juga dapat dengan mudah memvisualisasikan beberapa (biasanya tiga atau empat) dari mereka denganpairs(pc$x[,1:3])
atau, menggunakanlattice
,splom(pc$x[,1:3])
.sumber