PCA'nın bir sınıflandırıcının sonuçlarını kötüleştirmesine ne sebep olabilir?


27

En iyi özellik kombinasyonlarını bulmak için ileriye doğru seçim yaptığım yüzlerce özellik ile birlikte çapraz doğrulama yaptığım bir sınıflandırıcı var. Bunu, PCA ile aynı deneyleri çalıştırmayla karşılaştırıyorum, burada potansiyel özellikleri alıyorum, SVD uyguladım, orijinal sinyalleri yeni koordinat alanına dönüştürüyorum ve ileri seçim en iyi özelliklerini kullanıyorum .k

Sezgim, PCA'nın, sonuçları orijinal özelliklerden daha "bilgilendirici" olacağı için sonuçları iyileştirmesiydi. PCA hakkındaki saf anlayışım beni belaya sokuyor mu? PCA'nın bazı durumlarda sonuçları iyileştirmesi için ortak nedenlerden bazılarını önerebilir, ancak diğerlerinde daha kötü hale getirebilir mi?


Sorunuz şöyle özetlenebilir mi? "" Hangisi daha iyi - orijinal değişkenlere veya bunlardan elde edilen birkaç temel bileşene dayalı sınıflandırıcılar oluşturmak? "
ttnphns

1
“Orijinal değişkenleri kullanmanın daha iyi olduğu durumlar var mı, bunlardan elde edilen birkaç temel bileşen var mı?”.
Dolan Antenucci

1
Birçok sınıflandırma tekniği var. Örneğin Discriminant analizi yaparsanız, bu yazıyı okumanızı öneririm (kendi yorumum dahil).
ttnphns

1
'Sınıflandırıcının sonuçları' ile ne demek istiyorsunuz? Eğer oran doğru sınıflandırılmışsa, bu süreksiz bir uygunsuz puanlama kuralı, yani sahte bir model tarafından optimize edilmiş bir doğruluk puanıdır. Başlamak için uygun bir doğruluk puanlama kuralı kullanmanızı öneririm.
Frank Harrell

1
Parti için biraz geç, ama: iki kez kontrol edeceğim ilk şey, ileri seçimin doğrulama sonuçlarının aslında bağımsız davalarla elde edilmiş olmasıdır. Aksi takdirde, büyük bir iyimser önyargıya maruz kalacaksınız.
cbeleites, Monica

Yanıtlar:


29

“Regresyonda Temel Bileşenlerin Kullanımı Üzerine Bir Not” başlıklı müthiş ve değer biçilmemiş bir makaleden kaldırılmış basit bir durum düşünün .

Eğer sadece varsayalım iki (ölçekli ve de-meaned), bunları ifade özellikleri ve pozitif korelasyon hizalanmış 0.5, eşit ve üçüncü yanıt değişkeni sınıflayabilirsiniz istiyoruz. Diyelim ki sınıflandırılmasıx1x2XYY tamamen işareti ile belirlendiğini .x1x2

üzerinde PCA uygulanması, Var ( x 1 + x 2 ) = 1 + 1 + 2 ρ > Var ( x 1 - 'den beri yeni (varyansa göre sıralanmış) özelliklere sahiptir [ x 1 + x 2 , x 1 - x 2 ]. x 2 ) = 2 - 2 ρX[x1+x2,x1x2]Var(x1+x2)=1+1+2ρ>Var(x1x2)=22ρ. Bu nedenle, boyutunuzu 1'e, yani ilk ana bileşene düşürürseniz, sınıflandırma için kesin çözümü atıyorsunuzdur!

PCA agnostik olduğu için sorun oluşur . Ne yazık ki, birisi PCA'ya Y içeremez , çünkü bu veri sızıntısına neden olur.YY


Veri sızıntısı, matrisiniz söz konusu hedef belirleyicileri kullanarak oluşturulduğunda, bu nedenle örneklem dışında tahmin yapmak imkansız olacaktır.X

Örneğin: finansal zaman serilerinde, EST’de saat 11: 00’de meydana gelen Avrupa’nın gün sonu kapanışını tahmin etmeye çalışmak, ABD’nin gün sonu kapanışlarını kullanarak, EST’den saat 16: 00’da, ABD’nin kapanmasından bu yana veri sızıntısı olduğunu gösteriyor. saatler sonra gerçekleşen Avrupa kapanış fiyatlarını da dahil etti.


2
"veri sızıntısı" nedir?
user603

@Wayne çok pahalı haha
Cam.Davidson.Pilon

(-1) karışıklığa neden olduğu için: (1) PCA denetlenmez, bu yüzden dönüşümü hesaplamakta asla Y içermez. İlgili denetlenen teknik, hem X hem de Y kullanan PLS'dir. (2) Veri sızıntısı (olduğu gibi: istatistiksel olarak bağımlı verilerle test etme), denetlenen bir yöntem kullanmaktan kendiliğinden gelmez. Aksine: Birden fazla dava kullanan ilk analiz adımından (örneğin merkezleme, ölçeklendirme, PCA / PLS projeksiyonu) tüm hesaplamalar yapılması gerektiği kuralına uymazsanız, PCA ile PLS ile aynı şekilde gerçekleşecektir. sadece eğitim verileri üzerinde yapılmalıdır (yani… ...
cbeleites

... her bir vekil model için yeniden hesaplandı. Bu hesaplamaların sonuçları daha sonra antrenman durumlarda, vb PCA ile elde rotasyonla döndürmek yani eğitim verilerinden elde edilen merkezini çıkarma, deney verilerine uygulanabilir
cbeleites Monica destekler

Örnek olarak: zaman serileri özellikle zordur, çünkü bağımsız bir durumu oluşturan şey uygulamaya çok bağlı olacaktır. Stats.stackexchange.com/questions/76376/…
Monica

23

Basit bir geometrik açıklama var. Aşağıdaki örneği R'de deneyin ve ilk ana bileşenin varyansı maksimize ettiğini hatırlayın.

library(ggplot2)

n <- 400
z <- matrix(rnorm(n * 2), nrow = n, ncol = 2)
y <- sample(c(-1,1), size = n, replace = TRUE)

# PCA helps
df.good <- data.frame(
    y = as.factor(y), 
    x = z + tcrossprod(y, c(10, 0))
)
qplot(x.1, x.2, data = df.good, color = y) + coord_equal()

# PCA hurts
df.bad <- data.frame(
    y = as.factor(y), 
    x = z %*% diag(c(10, 1), 2, 2) + tcrossprod(y, c(0, 8))
)
qplot(x.1, x.2, data = df.bad, color = y) + coord_equal()

PCA Yardımlar PCA yardımcı olur

Maksimum varyansın yönü yataydır ve sınıflar yatay olarak ayrılmıştır.

PCA Acıyor PCA acıtıyor

Maksimum varyansın yönü yataydır, ancak sınıflar dikey olarak ayrılır.


... ve örnek 2'de, denetlenen analog, PLS aslında yardımcı olacaktır.
cbeleites, Monica


3

Ben soru zaten kabul edilen bir cevabı vardır ama bu paylaşmak istedim bakın kağıdı bu konuda görüşmeler sınıflandırma önce özellik dönüşüm için PCA kullanarak .

Eve dönüş mesajı (@ vqv'ın cevabında güzelce görselleştirilmiştir):

Temel Bileşen Analizi (PCA), verilerin en yüksek değişkenliği gösterdiği eksenleri çıkarmaya dayanır. Her ne kadar PCA, verileri yeni bazda “yayıyor” ve denetimsiz öğrenmede çok yardımcı olabilse de, yeni eksenlerin (denetimli) bir sınıflandırma probleminde ayrımcı özelliklerle tutarlı olacağının garantisi yoktur.

İlgilenenler için, Bölüm 4'e bakarsanız, Deneysel sonuçlar , sınıflandırma hassasiyetlerini 1) orijinal featuerler, 2) PCA'nın dönüştürdüğü özellikler ve 3) her ikisinin birleşimi ile karşılaştırarak benim için yeni bir şeydi.

Benim sonucum:

PCA tabanlı özellik dönüşümleri, çok sayıda özellikten gelen bilgileri sınırlı sayıda bileşene, yani orijinal özelliklerin doğrusal kombinasyonlarına özetlemeye izin verir. Bununla birlikte, temel bileşenlerin yorumlanması çoğu zaman zordur (sezgisel değildir) ve bu makaledeki deneysel sonuçların genellikle sınıflandırma performansını iyileştirmediğini göstermesi nedeniyle.

Not: Listelenen makalenin sınırlamalarından birinin, yazarların sınıflandırıcıların sadece 'tahakkuk' için sınırlı performans değerlendirmesini yaptıklarını ve bunun çok taraflı bir performans göstergesi olabileceğini unutmayın.


3

x1,x2,x3yx3=y

yx3

x1x2x3y

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.