Ini sudah ada dalam pikiran saya selama setidaknya beberapa jam. Saya mencoba menemukan k yang optimal untuk output dari algoritma k-means (dengan metrik kesamaan cosine ) jadi saya akhirnya merencanakan distorsi sebagai fungsi dari jumlah cluster. Dataset saya adalah kumpulan 800 dokumen dalam ruang 600 dimensi.
Dari apa yang saya mengerti, menemukan titik lutut atau titik siku pada kurva ini harus memberi tahu saya setidaknya tentang jumlah cluster yang saya butuhkan untuk memasukkan data saya. Saya meletakkan grafik di bawah ini. Titik di mana garis merah vertikal ditarik diperoleh dengan menggunakan tes turunan maksimum kedua . Setelah melakukan semua ini, saya terjebak pada sesuatu yang lebih sederhana: apa yang diceritakan grafik ini tentang dataset?
Apakah ini memberitahu saya bahwa itu tidak layak untuk dikelompokkan dan dokumen saya tidak memiliki struktur atau saya perlu menetapkan k yang sangat tinggi? Satu hal yang aneh adalah bahwa meskipun dengan k rendah, saya melihat dokumen serupa dikelompokkan jadi saya tidak yakin mengapa saya mendapatkan kurva ini. Adakah pikiran?
sumber
terms x document
diperoleh setelah melakukan vektor tunggal penguraian. Harap perbaiki saya jika saya salah.Jawaban:
Dalam kebanyakan situasi, saya akan berpikir bahwa dsuch plot pada dasarnya berarti bahwa tidak ada struktur cluster dalam data. Namun, pengelompokan dalam dimensi yang sangat tinggi seperti ini rumit karena untuk metrik jarak Euclidean semua jarak cenderung sama dengan jumlah dimensi meningkat. Lihat halaman Wikipedia ini untuk referensi ke beberapa makalah tentang topik ini. Singkatnya, itu mungkin hanya dimensi tinggi dari dataset yang menjadi masalah.
Ini pada dasarnya adalah "kutukan dimensi", lihat halaman Wikipedia ini juga.
Sebuah makalah yang mungkin menarik adalah Sanguinetti, G., "Pengurangan dimensi datset berkerumun", Transaksi IEEE pada Analisis Pola dan Kecerdasan Mesin, vol. 30 no. 3, hlm. 535-540, Maret 2008 ( www ). Yang agak mirip versi LDA tanpa pengawasan yang mencari ruang dimensi rendah yang menekankan struktur cluster. Mungkin Anda bisa menggunakannya sebagai metode ekstraksi fitur sebelum melakukan k-means?
sumber
Bagaimana tepatnya Anda menggunakan kesamaan cosinus? Apakah ini yang disebut sebagai K-means bola? Kumpulan data Anda cukup kecil, jadi saya akan mencoba memvisualisasikannya sebagai jaringan. Untuk ini wajar untuk menggunakan kesamaan (memang, misalnya kesamaan cosinus atau korelasi Pearson), menerapkan cut-off (hanya mempertimbangkan hubungan di atas kesamaan tertentu), dan melihat hasilnya sebagai jaringan dalam misalnya Cytoscape atau BioLayout . Ini bisa sangat membantu untuk merasakan data. Kedua, saya akan menghitung nilai singular untuk matriks data Anda, atau nilai eigen dari matriks yang ditransformasikan dan dinormalisasi secara tepat (matriks dokumen-dokumen yang diperoleh dalam beberapa bentuk). Struktur cluster harus (lagi) muncul sebagai lompatan dalam daftar nilai eigen atau nilai singular yang diurutkan.
sumber
Secara umum ya, k-means mungkin bertemu dengan solusi yang sangat berbeda yang mungkin dinilai tidak cocok. Ini terjadi khususnya untuk cluster dengan bentuk tidak beraturan.
Agar mendapatkan lebih banyak intuisi, Anda juga dapat mencoba pendekatan visualisasi lain: Untuk k-means Anda dapat memvisualisasikan beberapa proses dengan k-means menggunakan Graphgrams (lihat paket WEKA graphgram - terbaik diperoleh oleh manajer paket atau di sini . Pengantar dan contoh juga bisa berupa ditemukan di sini .
sumber
Jika saya memahami grafik dengan benar itu adalah plot dari jumlah cluster, K pada sumbu x dan jarak cluster dalam pada sumbu y?
Karena fungsi objektif K-means Anda adalah untuk meminimalkan WCSS, plot ini harus selalu berkurang secara monoton. Saat Anda menambahkan lebih banyak cluster, jarak antara titik-titik di cluster akan selalu berkurang. Ini adalah masalah mendasar pemilihan model, jadi Anda harus menggunakan sedikit kecanggihan.
Mungkin coba statistik Gap: www-stat.stanford.edu/~tibs/ftp/gap.ps atau yang lain menyukainya.
Selain itu, Anda mungkin menemukan bahwa K-means bukan alat yang tepat untuk pekerjaan itu. Berapa banyak cluster yang Anda harapkan? Menggunakan aturan varians untuk pengurangan dimensi untuk pengelompokan tidak tepat. Lihat makalah ini ketika memproyeksikan ke PC K-1 pertama adalah langkah preprocessing yang tepat: http://people.csail.mit.edu/gjw/papers/jcss.ps
Anda dapat dengan cepat melihat apakah ini hal yang benar untuk dilakukan dengan memplot proyeksi ke dua komponen utama pertama. Jika ada pemisahan yang jelas maka K-means harus baik-baik saja, jika tidak Anda perlu melihat ke hal lain. Mungkin K-subruang atau metode pengelompokan subruang lainnya. Ingat metode ini berlaku untuk jarak Euclidean. Saya tidak yakin bagaimana ini berubah untuk cosinus.
sumber