Saya bertanya-tanya apakah ada cara yang baik untuk menghitung kriteria pengelompokan berdasarkan formula BIC, untuk keluaran k-means dalam R? Saya agak bingung bagaimana cara menghitung BIC sehingga saya bisa membandingkannya dengan model clustering lainnya. Saat ini saya menggunakan implementasi paket statistik dari k-means.
r
clustering
k-means
bic
UnivStudent
sumber
sumber
Jawaban:
Untuk menghitung BIC untuk hasil kmeans, saya telah menguji metode berikut:
Kode r untuk rumus di atas adalah:
masalahnya adalah ketika saya menggunakan kode r di atas, BIC yang dihitung meningkat secara monoton. apa alasannya?
[ref2] Ramsey, SA, et al. (2008). "Mengungkap program transkripsi makrofag dengan mengintegrasikan bukti dari pemindaian motif dan dinamika ekspresi." PLoS Comput Biol 4 (3): e1000021.
Saya telah menggunakan formula baru dari /programming/15839774/how-to-calculate-bic-for-k-means-clustering-in-r
Metode ini memberikan nilai BIC terendah pada nomor cluster 155.
menggunakan metode yang disediakan @ttnphns, kode R yang sesuai seperti yang tercantum di bawah ini. Namun, masalahnya adalah apa perbedaan antara Vc dan V? Dan bagaimana cara menghitung perkalian elemen-bijaksana untuk dua vektor dengan panjang yang berbeda?
sumber
Vc
merupakan matriks P x K danV
merupakan kolom kemudian diperbanyak kali K ke dalam matriks ukuran yang sama. Jadi (poin 4 dalam jawaban saya) bisa Anda tambahkanVc+V
. Kemudian ambil logaritma, bagi dengan 2 dan hitung jumlah kolom. Vektor baris yang dihasilkan dikalikan (nilai dengan nilai, yaitu elemenwise) dengan barisNc
.Saya tidak menggunakan R tetapi di sini ada jadwal yang saya harap akan membantu Anda menghitung nilai kriteria pengelompokan BIC atau AIC untuk setiap solusi pengelompokan yang diberikan.
Pendekatan ini mengikuti Algoritma SPSS Analisis klaster dua langkah (lihat rumus di sana, mulai dari bab "Jumlah cluster", kemudian pindah ke "Jarak kemungkinan log" di mana ksi, kemungkinan log, didefinisikan). BIC (atau AIC) dihitung berdasarkan jarak log-likelihood. Saya menunjukkan perhitungan di bawah ini hanya untuk data kuantitatif (rumus yang diberikan dalam dokumen SPSS lebih umum dan memasukkan juga data kategorikal; Saya hanya membahas "bagian" data kuantitatifnya):
Kriteria pengelompokan AIC dan BIC tidak hanya digunakan dengan pengelompokan K-means. Mereka mungkin berguna untuk metode pengelompokan apa pun yang memperlakukan kepadatan dalam-cluster sebagai varian dalam-cluster. Karena AIC dan BIC akan dihukum karena "parameter berlebihan", mereka cenderung memilih solusi dengan lebih sedikit klaster. "Kluster yang lebih sedikit semakin terpecah satu sama lain" bisa jadi moto mereka.
Mungkin ada berbagai versi kriteria pengelompokan BIC / AIC. Yang saya tunjukkan di sini menggunakan
Vc
, dalam varian -cluster , sebagai istilah utama dari log-likelihood. Beberapa versi lain, mungkin lebih baik cocok untuk k-means clustering, mungkin mendasarkan log-likelihood pada dalam kluster jumlah-of-kotak .Versi pdf dari dokumen SPSS yang sama yang saya maksud.
Dan inilah akhirnya formula itu sendiri, sesuai dengan pseudocode dan dokumen di atas; ini diambil dari deskripsi fungsi (makro) yang saya tulis untuk pengguna SPSS. Jika Anda memiliki saran untuk meningkatkan formula, silakan kirim komentar atau jawaban.
sumber
Vc
di notasi saya (varians dalam-cluster dikumpulkan).Vc+V
digunakan bukanVc
hanya terhadap kasusVc=0
ketika sebuah cluster memiliki satu objek