Visualisasi data multi dimensi (LSI) dalam 2D

11

Saya menggunakan pengindeksan semantik laten untuk menemukan kesamaan antara dokumen ( terima kasih, JMS! )

Setelah pengurangan dimensi, saya sudah mencoba k-means clustering untuk mengelompokkan dokumen menjadi cluster, yang berfungsi dengan sangat baik. Tapi saya ingin melangkah lebih jauh, dan memvisualisasikan dokumen sebagai satu set node, di mana jarak antara dua node berbanding terbalik dengan kesamaan mereka (node ​​yang sangat mirip saling berdekatan).

Itu mengejutkan saya bahwa saya tidak dapat secara akurat mengurangi kesamaan matriks ke grafik 2 dimensi karena data saya> 2 dimensi. Jadi pertanyaan pertama saya: apakah ada cara standar untuk melakukan ini?

Bisakah saya mengurangi data saya menjadi dua dimensi dan kemudian memplotnya sebagai sumbu X dan Y, dan apakah itu cukup untuk sekelompok ~ 100-200 dokumen? Jika ini solusinya, apakah lebih baik mengurangi data saya menjadi 2 dimensi dari awal, atau adakah cara untuk memilih dua dimensi "terbaik" dari data multi dimensi saya?

Saya menggunakan Python dan perpustakaan gensim jika itu membuat perbedaan.

Jeff
sumber
Mengapa Anda perlu mengurangi dimensi? Untuk membuat grafik yang Anda inginkan, Anda hanya perlu tepi di mana panjang tepi sebanding dengan jarak antar dokumen. Anda sudah memilikinya, dari metrik yang digunakan untuk k-means clustering Anda.
Aman
@Aman yang tidak berfungsi untuk menampilkan kesamaan antara> 2 dokumen pada bidang 2D (grafik). yakin, saya dapat merencanakan titik A dan B dengan pemisahan berdasarkan jarak k-means. tapi kemudian ketika saya perlu merencanakan titik C, berdasarkan jarak ke A dan B, biasanya tidak ada titik dalam ruang 2D yang memenuhi semua hubungan berpasangan.
Jeff

Jawaban:

7

S=XXSM=VΛV=XXX=VΛ1/2

ΛX

Ada banyak kode yang tersedia untuk MDS (dan saya akan terkejut jika Scipy tidak memiliki beberapa versi). Bagaimanapun juga, selama Anda memiliki akses ke beberapa rutin SVD dengan python yang Anda atur.

Suresh Venkatasubramanian
sumber
1
Saya pikir LDA akan lebih baik untuk ini. PCA - seperti yang Anda dapatkan melalui SVD - tidak akan menyimpan informasi pengelompokan klaster (kelas) apa pun, yang merupakan tujuan OP.
Zhubarb
0

Ada perangkat lunak bernama ggobi yang dapat membantu Anda. Ini memungkinkan Anda menjelajahi pseudo-spasi multi-dimensi. Ini sebagian besar untuk eksplorasi data tetapi antarmuka sangat ramah dan 'hanya berfungsi'!

Anda hanya perlu format CSV (di RI biasanya hanya menggunakan write.csv dengan parameter default) atau file XML (format ini memungkinkan Anda lebih banyak kontrol; Saya biasanya menyimpan tabel saya di CSV kemudian mengekspornya ke XML dengan ggobi dan mengeditnya secara manual misalnya mengubah urutan beberapa faktor).

pedrosaurio
sumber