Apakah ada cara untuk menentukan jumlah cluster optimal atau haruskah saya mencoba nilai yang berbeda dan memeriksa tingkat kesalahan untuk memutuskan nilai terbaik?
19
Apakah ada cara untuk menentukan jumlah cluster optimal atau haruskah saya mencoba nilai yang berbeda dan memeriksa tingkat kesalahan untuk memutuskan nilai terbaik?
R
) di sini: stackoverflow.com/a/15376462/1036500Jawaban:
Metode yang saya gunakan adalah menggunakan CCC (Kriteria Clustering Kubik). Saya mencari CCC meningkat maksimum ketika saya menambah jumlah cluster dengan 1, dan kemudian mengamati ketika CCC mulai berkurang. Pada saat itu saya mengambil jumlah cluster pada maksimum (lokal). Ini akan mirip dengan menggunakan plot scree untuk memilih jumlah komponen utama.
Laporan Teknis SAS A-108 Kriteria Clustering Kubik ( pdf )
= jumlah observasi n k = jumlah cluster k p = jumlah variabel q = jumlah cluster X = n × p Data matriks M = q × p matriks cluster sarana Z = indikator klaster ( z i k = 1 jika obs . i dalam cluster k , 0 jika tidak)n
nk k
p
q
X n×p
M q×p
Z zik=1 i k
Asumsikan setiap variabel memiliki rata-rata 0:Z′Z=diag(n1,⋯,nq) M=(Z′Z)−1Z′X
, M = ( Z ′ Z ) - 1 Z ′ X
Matriks S S (total) = T = X ′ X S S (antara kluster) matriks = B = M ′ Z ′ Z M S S (dalam klaster) matriks = W = T - BSS T X′X
SS B M′Z′ZM
SS W T−B
(trace = jumlah elemen diagonal)R2=1–trace(W)trace(T)
Tumpuk kolom menjadi satu kolom panjang. Regresi pada produk Kronecker dari Z dengan p × p matriks identitas Hitung R 2 untuk regresi ini - sama R 2X
Z p×p
R2 R2
Gagasan CCC adalah untuk membandingkan Anda dapatkan untuk sekelompok cluster tertentu dengan R 2 yang akan Anda dapatkan dengan mengelompokkan set poin yang terdistribusi secara seragam dalam ruang p dimensi.R2 R2 p
sumber