K-ortalamaları kümeleme algoritmamın boyutsallığın lanetinden muzdarip olduğunu nasıl bilebilirim?


12

Bu sorunun başlığının her şeyi söylediğine inanıyorum.


3
Sanırım bizim için bir belirti ile ne demek istediğini açıklığa kavuşturman gerekecek.
mdewey

Eğer "belirti" "test" in el-halli bir versiyonuysa, belki de veri setinizin alt örneklerini alabilirsin - belki örnek büyüklüğünün% 66'sını analiz edebilirsin (kmeans, senin durumunda) ve sonra ne kadar ürkek olduğunu görebilirsin sonuçlar. Örneğin, belirli kümelerin aynı kümeye ne sıklıkta atandığını görebilirsiniz. Sonra tekrar, çabaya değmeyebilir. Bir boyutsallık sorunu olasılığından endişe ediyorsanız, şansınız var demektir. Boyutsallığı bir miktar azaltan diğer kümelenme yaklaşımlarını düşünebilirsiniz.
generic_user

@generic_user Bu yorum bir cevap olsaydı, bunu kabul edilmiş bir cevap olarak sayardım :)
mathieu

1
Bu soru açık kalacak kadar açık, IMO.
gung - Monica'yı eski

1
Çoğu zaman, k-ortalamaların "boyutsallığın laneti" nden daha önce çok daha ciddi problemlerle karşılaşırsınız. k-vasıta olabilir nitelikleri iyi huylu olup olmadığını 128 boyutlu veri (örn SIFT renk vektörler) üzerinde çalışır. Bir dereceye kadar, bazen 10000 boyutlu metin verileri üzerinde bile çalışabilir. Lanetin teorik modeli asla gerçek veriler için geçerli değildir. Daha büyük sorunlar, karşılaştırılamaz özellikler, esneklik ve sonucu görselleştirememe ve iki kez kontrol edememektir.
QUIT - Anony-Mousse

Yanıtlar:


18

Boyutsallığın Laneti'nin ne olduğunu düşünmeye yardımcı olur . CV üzerinde okumaya değer birkaç çok iyi konu vardır. İşte başlayacağınız yer: Bir çocuğa “boyutsallığın Laneti” ni açıklayın .

Bunun kümelenme için nasıl geçerli olduğu ile ilgilendiğinizi not ediyorum . araçlarının kareli Öklid mesafesini en aza indirmek için (sadece) bir arama stratejisi olduğunun farkında olmakta fayda var. Bunun ışığında, Öklid mesafesinin boyutsallığın laneti ile nasıl ilişkili olduğunu düşünmeye değer (bkz: Öklid mesafesi neden yüksek boyutlarda iyi bir metrik değildir? ). kk

Bu ipliklerin kısa cevabı, alan hacminin (boyutunun) boyut sayısına göre inanılmaz bir oranda artmasıdır. boyut bile (ki bu benim için çok 'yüksek boyutlu' gibi görünmüyor) laneti getirebilir. Verileriniz bu alana eşit olarak dağıtıldıysa, tüm nesneler birbirlerinden yaklaşık olarak eşit uzaklıkta olurlar. Ancak, @ Anony-Mousse bu soruya cevabında belirttiği gibi, bu fenomen verilerin alan içinde nasıl dizildiğine bağlıdır; eğer tek tip değilse, bu problemin olması gerekmez. Bu, düzgün dağılmış yüksek boyutlu verilerin hiç de çok yaygın olup olmadığı sorusuna yol açar (bkz: “boyutsallığın laneti” gerçek verilerde gerçekten var mı? ). 10

Önemli olan değişkenlerin sayısı (verilerinizin gerçek boyutsallığı) değil, verilerinizin etkili boyutsallığı olduğunu iddia ediyorum. boyutun araçları için 'çok yüksek' olduğu varsayımı altında , en basit strateji sahip olduğunuz özelliklerin sayısını saymak olacaktır. Ancak etkili boyutsallık açısından düşünmek istiyorsanız, bir temel bileşen analizi (PCA) yapabilir ve özdeğerlerin nasıl düştüğüne bakabilirsiniz. Varyasyonun çoğunun (genellikle veri kümenizin orijinal boyutlarını kesen) birkaç boyutta olması oldukça yaygındır. Bu , etkili boyutluluğunuzun aslında çok daha küçük olması anlamında ile ilgili bir sorun yaşamanızın daha az olası olduğu anlamına gelir . 10kk

Bundan daha kapsamlı bir yaklaşım çizgisinde kümenizdeki ikili mesafeler dağılımını incelemek olacağını @ hxd1011 onun önerdiklerini cevap . Basit marjinal dağılımlara bakmak, olası tekdüzelik hakkında bazı ipuçları verecektir. Tüm değişkenleri aralığında olacak şekilde normalleştirirseniz , çift mesafeler aralığında olmalıdır . Çok konsantre olan mesafeler sorun yaratacaktır; Öte yandan, çok modlu bir dağılım umutlu olabilir (cevabımda bir örnek görebilirsiniz: İkili ve sürekli değişkenlerin kümelenmede birlikte kullanılması? ).[0, 1][0, D]

Ancak, araçlarının 'işe yarayıp yaramayacağı' hala karmaşık bir sorudur. Verilerinizde anlamlı gizli gruplamalar olduğu varsayımı altında, bunların tüm boyutlarınızda veya varyasyonu en üst düzeye çıkaran yapılandırılmış boyutlarda (yani, temel bileşenler) bulunması gerekmez. Kümeler daha düşük varyasyon boyutlarında olabilir (bkz: Düşük varyansa sahip PC'lerin “faydalı” olduğu PCA örnekleri ). Yani, boyutlarınızın sadece birkaçında veya daha düşük varyasyonlu PC'lerde yakın ve iyi ayrılmış noktaları olan kümeleriniz olabilir, ancak araçlarına neden olabilecek yüksek varyasyonlu PC'lerde uzaktan benzer değildir. peşinde olduğunuz kümeleri görmezden gelmek ve bunun yerine sahte kümeleri seçmek için (bazı örnekler burada görülebilir:kkK-araçlarının dezavantajları nasıl anlaşılır ).


Görünüşe göre manifold öğrenme için bir etiket var (önce bakmalıydım!). Bilmiyor olabilir olanlar için Özetlemek gerekirse, fikri yüksek boyutlu veri tüm alanın bakımından seyrek olma eğilimindedir ederken, bazı hiperyüzeyden üzerinde yoğun olabilir ki içinde o alanda.
GeoMatt22

Mükemmel cevap için +1. Özdeğerler kısmında biraz daha ayrıntı verebilir misiniz? Etkili boyutsallık küçükse, PCA yapmanızı ve sadece yüksek özdeğerleri olan ilk birkaç skoru korumanızı önerir misiniz?
DataD'oh

@ DataD'oh, bu kesinlikle bir olasılık, ama söylediklerim buna gerek yok. Aslında, veriler yüksek boyutlu değildir (sadece ilk birkaç özvektör yüksek öz değere sahip olduğunda), bu yüzden mutlaka bir şey yapmanız gerekmez - boyutsallığın laneti geçerli olmaz.
gung - Monica'yı eski durumuna döndürün

@gung Yeni bir soru gönderdim . Umarım çok önemsiz değildir.
DataD'oh

7

Cevabım K ile sınırlı değil, herhangi bir mesafe tabanlı yöntem için boyutsallık lanetimizin olup olmadığını kontrol edin. K-araçları bir mesafe ölçüsüne dayanır (örneğin, Öklid mesafesi)

Algoritmayı çalıştırmadan önce, mesafe metriği dağılımını, yani verilerin tüm çiftleri için tüm mesafe metriklerini kontrol edebiliriz. Eğer varsa, veri noktaları, sahip olmalıdır mesafe ölçümlerini. Veriler çok büyükse, bunun bir örneğini kontrol edebiliriz.N0.5N(N1)

Boyutsallık sorununun laneti varsa, göreceğiniz şey, bu değerlerin birbirine çok yakın olmasıdır. Bu çok karşı-sezgisel görünüyor, çünkü her birinin her birine yakın veya uzak olduğu ve mesafe ölçüsünün temelde faydasız olduğu anlamına geliyor.


İşte size bu tür sezgisel sonuçları göstermek için bazı simülasyonlar. Tüm özellikler eşit olarak dağıtılmışsa ve çok fazla boyut varsa, her mesafe metriği olan yakın olmalıdır. . Eşit dağılımları diğer dağıtımlara değiştirmekten çekinmeyin. Normal dağılıma (değişiklik değiştirmek, örneğin, için ), bu çok sayıda boyutlara sahip başka bir numaraya yakınsar.16xi=01xj=01(xixj)2dxidxjrunifrnorm

İşte 1'den 500'e kadar boyut için simülasyon, özellikler 0'dan 1'e eşit dağılımdır.

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))
}

resim açıklamasını buraya girin


1
Nedir ? P
amip

1
Öklid büzülme fenomeninin yüksek boyutlar altında bir gösterimi nedeniyle yok olmuştum. Ama cevap k-demek lanetten kümelenmenin acısını göstermiyor . Acı, yüksek boyutlarda makul derecede iyi ayrılmış kümelerin (ve sizinki gibi tek tip rastgele verilerin değil) düşük boyutlarda olduğu gibi başarılı bir şekilde ortaya çıkamayabileceği anlamına gelecektir. Bu konuya dokunmadınız.
ttnphns

@amoeba boyut sayısıdır. Grafiği inceleyip kodu ekleyeceğim. Teşekkürler. P
Haitao Du

@ttnphns Yorumunuz ve oyunuz için teşekkürler. K araçları üzerindeki etkisini tartışmak için bir paragraf ekleyip ekleyemeyeceğimi göreceğim.
Haitao Du
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.