Bagaimana saya tahu algoritma klaster k-means saya menderita kutukan dimensi?

12

Saya percaya bahwa judul pertanyaan ini mengatakan semuanya.

mathieu
sumber
3
Saya pikir Anda harus mengklarifikasi kepada kami apa yang Anda maksud dengan gejala.
mdewey
Jika "gejala" adalah versi bebas dari "tes", maka mungkin Anda bisa mengambil subsampel dari dataset Anda - mungkin 66% dari ukuran sampel, melakukan analisis Anda (kman, dalam kasus Anda), dan kemudian melihat bagaimana gelisah hasilnya. Misalnya, Anda bisa melihat seberapa sering pengamatan tertentu ditugaskan ke cluster yang sama. Kemudian lagi, itu mungkin tidak sepadan dengan usaha. Jika Anda khawatir tentang kemungkinan masalah dimensionalitas, kemungkinan Anda memilikinya. Anda mungkin mempertimbangkan pendekatan pengelompokan lain yang mengurangi dimensi.
generic_user
@generic_user jika komentar itu adalah jawaban, saya akan menganggapnya sebagai jawaban yang diterima :)
mathieu
1
Pertanyaan ini cukup jelas untuk tetap terbuka, IMO.
gung - Reinstate Monica
1
Cukup sering, Anda mengalami masalah yang jauh lebih parah dari k-means lebih awal daripada "kutukan dimensi". k-means dapat bekerja pada data 128 dimensi (misalnya vektor warna SIFT) jika atributnya bagus. Hingga taraf tertentu, kadang-kadang bahkan dapat bekerja pada data teks 10.000 dimensi. Model teoritis kutukan tidak pernah berlaku untuk data nyata. Masalah yang lebih besar adalah fitur yang tak tertandingi, sparsity, dan ketidakmampuan untuk memvisualisasikan dan memeriksa ulang hasilnya.
Memiliki QUIT - Anony-Mousse

Jawaban:

18

Ini membantu untuk berpikir tentang apa Kutukan Dimensi itu. Ada beberapa utas yang sangat bagus di CV yang layak dibaca. Inilah tempat untuk memulai: Jelaskan "Kutukan dimensi" kepada seorang anak .

Saya perhatikan bahwa Anda tertarik pada bagaimana ini berlaku untuk berarti pengelompokan. Perlu disadari bahwa k- berarti adalah strategi pencarian untuk meminimalkan (hanya) jarak Euclidean kuadrat. Mengingat hal itu, ada baiknya memikirkan bagaimana jarak Euclidean berhubungan dengan kutukan dimensi (lihat: Mengapa jarak Euclidean bukan metrik yang baik dalam dimensi tinggi? ). kk

Jawaban singkat dari utas ini adalah bahwa volume (ukuran) ruang meningkat pada tingkat yang luar biasa dibandingkan dengan jumlah dimensi. Bahkan dimensi (yang sepertinya tidak terlalu 'dimensional' bagi saya) dapat menimbulkan kutukan. Jika data Anda didistribusikan secara seragam di seluruh ruang itu, semua objek menjadi kira-kira berjarak sama satu sama lain. Namun, seperti yang dicatat oleh @ Anony-Mousse dalam jawabannya untuk pertanyaan itu, fenomena ini tergantung pada bagaimana data disusun dalam ruang; jika tidak seragam, Anda tidak harus mengalami masalah ini. Ini mengarah pada pertanyaan apakah data berdimensi tinggi yang terdistribusi secara merata sangat umum sama sekali (lihat: Apakah "kutukan dimensi" benar-benar ada dalam data nyata? ). 10

Saya berpendapat bahwa yang penting belum tentu jumlah variabel (dimensi literal data Anda), tetapi dimensi efektif data Anda. Dengan asumsi bahwa dimensi 'terlalu tinggi' untuk k- berarti, strategi paling sederhana adalah menghitung jumlah fitur yang Anda miliki. Tetapi jika Anda ingin berpikir dalam hal dimensi efektif, Anda bisa melakukan analisis komponen utama (PCA) dan melihat bagaimana nilai eigen turun. Sangat umum bahwa sebagian besar variasi ada dalam beberapa dimensi (yang biasanya memotong dimensi asli dari dataset Anda). Itu akan menyiratkan Anda cenderung memiliki masalah dengan k- berarti dalam arti bahwa dimensi efektif Anda sebenarnya jauh lebih kecil. 10kk

Pendekatan yang lebih terlibat adalah memeriksa distribusi jarak berpasangan dalam dataset Anda sepanjang garis @ hxd1011 yang disarankan dalam jawabannya . Melihat distribusi marginal sederhana akan memberi Anda beberapa petunjuk tentang kemungkinan keseragaman. Jika Anda menormalkan semua variabel agar berada dalam interval , jarak berpasangan harus berada dalam interval [ 0 , [0, 1]. Jarak yang sangat terkonsentrasi akan menyebabkan masalah; di sisi lain, distribusi multi-modal mungkin penuh harapan (Anda dapat melihat contoh dalam jawaban saya di sini:Bagaimana cara menggunakan variabel biner dan kontinu bersama-sama dalam pengelompokan?).[0, D]

Namun, apakah berarti 'bekerja' masih merupakan pertanyaan yang rumit. Di bawah asumsi bahwa ada pengelompokan laten yang berarti dalam data Anda, mereka tidak selalu ada di semua dimensi Anda atau dalam dimensi yang dikonstruksi yang memaksimalkan variasi (yaitu, komponen utama). Cluster dapat berada dalam dimensi variasi yang lebih rendah (lihat: Contoh PCA di mana PC dengan varian rendah "berguna" ). Artinya, Anda dapat memiliki kluster dengan titik-titik yang dekat dan dipisahkan dengan baik pada beberapa dimensi Anda atau pada PC dengan variasi lebih rendah, tetapi tidak mirip dengan PC variasi tinggi, yang akan menyebabkan k- berarti untuk mengabaikan kluster yang Anda cari dan pilih kluster palsu sebagai gantinya (beberapa contoh dapat dilihat di sini:kkCara memahami kelemahan K-means ).

gung - Pasang kembali Monica
sumber
Ternyata sudah ada tag untuk manifold learning (seharusnya sudah dilihat dulu!). Untuk meringkas bagi mereka yang mungkin tidak tahu, idenya adalah bahwa sementara data dimensi tinggi cenderung jarang dalam hal seluruh ruang, itu mungkin padat pada beberapa permukaan wajah di dalam ruang itu.
GeoMatt22
+1 untuk jawaban yang sangat bagus. Bisakah Anda jelaskan sedikit lebih banyak pada bagian nilai eigen? Jika dimensi efektifnya kecil, apakah Anda merekomendasikan melakukan PCA dan hanya mempertahankan beberapa skor pertama dengan nilai eigen tinggi?
DataD'oh
@ DataD'oh, itu pasti satu kemungkinan, tapi yang saya katakan adalah Anda tidak perlu melakukan itu. Akibatnya, data tidak berdimensi tinggi (ketika hanya beberapa vektor eigen pertama yang memiliki nilai eigen tinggi), jadi Anda tidak perlu melakukan apa pun - kutukan dimensi tidak akan berlaku.
gung - Reinstate Monica
@gung Saya telah mengirim pertanyaan baru . Saya harap itu tidak terlalu sepele.
DataD'oh
7

Jawaban saya tidak terbatas pada K berarti, tetapi periksa apakah kita memiliki kutukan dimensi untuk metode berbasis jarak. K-means didasarkan pada ukuran jarak (misalnya, jarak Euclidean)

N0.5N(N1)

Jika kita memiliki kutukan masalah dimensionalitas, apa yang akan Anda lihat, adalah bahwa nilai-nilai ini sangat dekat satu sama lain. Ini tampaknya sangat kontra-intuitif, karena itu berarti setiap orang dekat atau jauh dari setiap orang dan ukuran jarak pada dasarnya tidak berguna.


16xi=01xj=01(xixj)2dxidxjrunifrnorm

Berikut adalah simulasi untuk dimensi dari 1 hingga 500, fitur-fiturnya adalah distribusi yang seragam dari 0 hingga 1.

plot(0, type="n",xlim=c(0,0.5),ylim=c(0,50))
abline(v=1/6,lty=2,col=2)
grid()

n_data=1e3
for (p in c(1:5,10,15,20,25,50,100,250,500)){
    x=matrix(runif(n_data*p),ncol=p)
    all_dist=as.vector(dist(x))^2/p
    lines(density(all_dist))
}

masukkan deskripsi gambar di sini

Haitao Du
sumber
1
P
amoeba
1
Saya telah memilih karena demonstrasi fenomena penyusutan euclidean di bawah dimensi tinggi. Tetapi jawabannya tidak menunjukkan penderitaan k-means pengelompokan dari kutukan. Penderitaan akan menyiratkan bahwa dalam dimensi tinggi cluster yang dipisahkan dengan baik (dan bukan data acak seragam seperti milik Anda) mungkin gagal terungkap dengan sukses seperti halnya dalam dimensi rendah. Anda tidak menyentuh topik ini.
ttnphns
P
@ttnphns, terima kasih atas komentar dan dukungan Anda. Saya akan melihat apakah saya dapat menambahkan satu paragraf untuk membahas dampak pada k berarti.
Haitao Du