Kmeans çalıştırmadan önce korelasyonlu / doğrusal olan değişkenleri düşürmem gerekir mi?


14

Müşteri kümelerini tanımlamak için kmeans kullanıyorum. Kümeleri tanımlamak için yaklaşık 100 değişkenim var. Bu değişkenlerin her biri, bir müşterinin bir kategoriye yaptığı harcama yüzdesini temsil eder. Yani, 100 kategorim varsa, bu değişkenlerin toplamı her müşteri için% 100 olacak şekilde 100 değişkenim var. Şimdi, bu değişkenler birbiriyle güçlü bir şekilde ilişkilidir. Kmeans çalıştırmadan önce eşbiçimliliği kaldırmak için bunlardan bazılarını düşürmem gerekiyor mu?

İşte örnek veriler. Gerçekte 100 değişkenim ve 10 milyon müşterim var.

Customer CatA CatB CatC   
1         10%  70%  20%   
2         15%  60%  25%

1
Verilerinizi dekore etmek için PCA analizini denediniz mi?
Miroslav Sabo

2
"Collinear", "correleted" ile tam olarak aynı değildir. Yani sorunuz belirsizliğini koruyor
ttnphns

Yanıtlar:


10

Değişkenleri düşürmeyin, ancak PCA kullanmayı düşünün. İşte nedeni.

İlk olarak, Anony-mousse tarafından işaret edildiği gibi, k-ortalamaları, eş-doğrusallık / korelasyonlardan kötü bir şekilde etkilenmez. Bu yüzden bilgi atmanıza gerek yok.

İkincisi, değişkenlerinizi yanlış bir şekilde bırakırsanız, bazı örnekleri yapay olarak birbirine yaklaştırırsınız. Bir örnek:

Customer CatA CatB CatC
1        1    0    0
2        0    1    0
3        0    0    1

(% Gösterimini kaldırdım ve sadece 0 ile 1 arasında değerler koydum, böylece hepsi 1'e sınırlandı.)

Bu müşterilerinin her birinin doğal 3 boyutlu alanlarındaki öklid mesafesi(10)2+(01)2+(00)2=2

Şimdi CatC'yi düşürdüğünüzü varsayalım.

Customer CatA CatB 
1        1    0    
2        0    1    
3        0    0    

Şimdi 1 ve 2 müşterileri arasındaki mesafe hala , ancak 1 ve 3 müşterileri ile 2 ve 3 müşterileri arasında sadece . Ham verileri desteklemeyecek şekilde müşteri 3'ü 1 ve 2'ye daha benzer şekilde yapay hale getirdiniz.2(10)2+(00)2=1

Üçüncüsü, kolinerarlık / korelasyonlar sorun değildir. Boyutsallığınız. 100 değişken, 10 milyon veri noktasıyla bile, k-araçlarının verilerde sahte desenler bulabileceğinden ve buna uygun olabileceğinden endişeleniyorum. Bunun yerine, PCA'yı daha yönetilebilir bir boyuta sıkıştırmak için kullanmayı düşünün - başlangıç ​​olarak 10 veya 12 deyin (belki çok daha yüksek, belki çok daha düşük - her bileşen boyunca varyansa bakmanız ve oyun oynamanız gerekir. doğru sayıyı bulmak için). Bunu yaparken yapay olarak bazı örnekleri birbirine yakınlaştıracaksınız, evet, ancak bunu verilerdeki varyansın çoğunu koruyacak ve tercihen korelasyonları kaldıracak şekilde yapacaksınız.

~~~~~

DÜZENLE:

Re, aşağıda PCA hakkında yorumlar. Evet, kesinlikle patolojileri var. Ancak denemesi oldukça hızlı ve kolaydır, bu yüzden sorunun boyutsallığını azaltmak istiyorsanız yine de bana kötü bir bahis gibi görünmüyor.

Bu notta, birkaç adet 100 boyutlu sentetik veri setini, k-araç algoritmasına hızlı bir şekilde atmaya çalıştıklarını gördüm. Küme merkezi konum tahminleri bu kadar doğru olmasa da, küme üyeliği (yani, aynı kümeye iki örnek atanmış olsun ya da olmasın, OP'nin ilgilendiği gibi görünüyor), düşündüğümden çok daha iyiydi. Bağırsak duygularım daha önce muhtemelen yanlıştı - k-ham veri üzerinde sadece iyi çalışma anlamına geliyor.


1
PCA değişkenlerini ortadan kaldırırken çok dikkat edilmesi gerektiğini düşünüyorum. Her şeyden önce, değişkenler, birimleri nedeniyle farklı ölçeklere sahip oldukları için yanlış bir şekilde ortadan kaldırabileceğiniz gibi, ortadan kaldırmadan önce varyanslar normalleştirilmelidir. İkincisi, sadece minik varyasyona sahip olan boyutları ortadan kaldıracağım, çünkü PCA dikey olmayan bir yönde varyasyonunuz varsa dikey bir temel aldığından, bu k-araçlarıyla yakalanacak, ancak PCA tarafından elimine edilecektir.
Çağdaş Özgenç

1
Daha temel bir endişe, bağımsız değişkenler üzerindeki PCA'nın bağımlı değişken hakkında hiç bilgi vermemesidir. Bu PCA yaklaşımının önemli olan her değişkeni ortadan kaldıracağı ve yalnızca olmayanları koruyacağı örnekler oluşturmak kolaydır! Neler olduğunu görmek için, varyans ve korelasyonu ile iki değişkenli bir Normal dağılım elde edelim ve . den gelen veriler üzerinde bir PCA, ana bileşen olarak tanımlar ve ortadan kaldırır . Gerileme üzerinde anlamsız olacaktır. 1 ρ > 0 Y = X 1 - X 2 ( X 1 , X 2 ) X 1 + X 2 X 1 - X 2 Y X 1 + X 2(X1,X2)1ρ>0Y=X1X2(X1,X2)X1+X2X1X2YX1+X2
whuber

1
Denetimsiz ortamda ilgisiz bir tartışmadır. Denetimli ayar için evet PCA, hedef değişkenle olan ilişkiyi önemsemez. Bağımlılık yönü düşük varyans yönünde düşerse kötü şans.
Çağdaş Özgenç

2

2d veya 3d'de bir oyuncak örneğinde, çok fazla fark yaratmamalıdır, verilerinize biraz fazlalık ekler: tüm noktalarınız garip, (d-1) boyutlu bir hiper düzlemde. Küme araçları da öyle. Ve bu (d-1) boyutlu hiper düzlemdeki mesafe, aynı mesafenin doğrusal bir katıdır, bu yüzden hiçbir şey değiştirmez.

Yapay yaparak örneğin bu verileri, inşa halinde o zaman yapmanız bozucu alan ve etkisini vurgulamak ve . Bunu tüm değişkenlere yaparsanız önemli değil; ancak ağırlıkları bu şekilde kolayca değiştirebilirsiniz. Bu, değişkenlerin normalleştirilmesi ve ağırlıklandırılmasının gerekli olduğu bilinen gerçeğini vurgular . Verilerinizde korelasyonlar varsa, bu her zamankinden daha önemlidir.x y(x,y)(x,y,x+y)xy

En basit örneğe bakalım: yinelenen değişkenler.

Veri kümenizde PCA çalıştırırsanız ve bir değişkeni çoğaltırsanız, bu etkili bir şekilde bu değişkene çift ağırlık koymak anlamına gelir. PCA, PCA yapmadan önce her yöndeki varyansın eşit derecede önemli olduğu varsayımına dayanır - bu nedenle, PCA'yı yapmadan önce değişkenleri dikkatle ağırlıklandırmalısınız (korelasyonları dikkate alarak, gerekli diğer ön işlemleri de yapmalısınız).


1
Stats.stackexchange.com/a/50583'teki analizlerimin ışığında , bu gerekçe yanlış görünüyor.
whuber

Cevabımı çok geliştirdim, oyuncak örnek verilerine dayanarak çok fazlaydı.
ÇIKIŞ - Anony-Mousse

1

Değişkenler yüksek derecede ilişkiliyse kaldırılması önerilir .

Kümeleme algoritması veya bağlantı yöntemine bakılmaksızın, genel olarak takip ettiğiniz bir şey noktalar arasındaki mesafeyi bulmaktır. Yüksek korelasyonlu değişkenleri tutmak, daha fazlasını vermek dışında, iki nokta arasındaki mesafeyi hesaplarken ağırlığı iki katına çıkarır (Tüm değişkenler normalleştirildiğinden, etki genellikle çift olacaktır).

Kısacası, diğer herhangi bir değişkenle yüksek korelasyonu varsa, değişkenlerin küme oluşumunu etkileme gücü artar.

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.