PCA ve tren / test bölümü


35

Birden fazla ikili etiket setine sahip olduğum bir veri setim var. Her bir etiket kümesi için, bir sınıflandırıcı hazırlıyorum, çapraz onaylama yaparak değerlendiriyorum. Temel bileşen analizi (PCA) kullanarak boyutsallığı azaltmak istiyorum. Sorum şu:

PCA'nın tüm veri kümesi için bir kez yapılması ve daha sonra yukarıda açıklandığı gibi çapraz doğrulama için yeni düşük boyutsal veri kümesinin kullanılması mümkün müdür ? Yoksa her eğitim seti için ayrı bir PCA mı yapmam gerekiyor (bu, her sınıflandırıcı için ve her çapraz doğrulama katlaması için ayrı bir PCA yapmak anlamına gelir)?

Bir yandan, PCA etiketleri kullanmaz. Öte yandan, dönüşümü yapmak için test verilerini kullanıyor, bu yüzden sonuçları etkileyebileceğinden korkuyorum.

Bana biraz çalışma kaydetmenin yanı sıra, PCA'yı tüm veri kümesinde bir kez yapmak, tüm etiket kümeleri için veri kümesini aynı anda görüntülememe izin vereceğini söylemeliyim. Her etiket kümesi için farklı bir PCA'm varsa, her etiket kümesini ayrı ayrı görselleştirmem gerekir.


Gelecekteki referans için. caretPaket içinde R'de PCA ile çapraz doğrulama nasıl yapılır hakkında şu soruya bakın : PCA ve Caret'te Çapraz Doğrulama k katlayın .
amip diyor Reinstate Monica


Yanıtlar:


34

Genelleme hatasını ölçmek için ikincisini yapmanız gerekir: her eğitim seti için ayrı bir PCA (bu, her sınıflandırıcı ve her CV katlaması için ayrı bir PCA yapmak anlamına gelir).

Daha sonra test kümesi aynı dönüşüm geçerlidir: yani do not test kümesi üzerinde ayrı bir PCA yap! Burada açıklandığı gibi, eğitim setinin ortalamasını (ve gerekirse standart sapmaya bölünmesi gerekir) çıkarırsınız: Eğitim setinde PCA'dan sonra test setini sıfır merkezleme . Ardından verileri eğitim setinin bilgisayarlarına yansıtırsınız.


  • Kullanılacak bilgisayar sayısı için otomatik bir kriter tanımlamanız gerekecektir.
    "Gerçek" sınıflandırmadan önceki ilk veri azaltma aşaması olduğu için, çok fazla sayıda PC kullanmak performansa zarar vermeyecektir. Kaç bilgisayarın deneyiminden iyi olacağı konusunda bir beklentiniz varsa, belki de bunu kullanabilirsiniz.

  • Daha sonra her vekil model için PCA'nın tekrarlanmasının gerekip gerekmediğini de test edebilirsiniz (analizi yalnızca bir PCA modeliyle tekrarlamak). Bu testin sonucunun rapor edilmeye değer olduğunu düşünüyorum.

  • Bir keresinde PCA'nın tekrarlanmamasının önyargısını ölçtüm ve spektroskopik sınıflandırma verilerimle, her vekil model için PCA'yı tekrarlamadığımda genelleme hata oranının sadece yarısını tespit ettiğimi öğrendim.

Varlık bir inşa edebilirsiniz, söz konusu ek (örneğin görselleştirme) amaçları açıklayıcı için bütün veri setinin PCA modeli. Sadece iki yaklaşımı birbirinden ayrı tuttuğunuzdan emin olun.


Veri setinin tamamındaki ilk PCA'nın sınıf etiketlerini görmeden sonuçları nasıl önyargıladığına dair bir fikir edinmeyi hala zor buluyorum.

Ancak verileri görüyor. Sınıflar arası varyans, sınıf içi varyansa göre daha büyükse, sınıflar arası varyans PCA projeksiyonunu etkileyecektir. Genellikle PCA adımı yapılır çünkü sınıflandırmayı dengelemeniz gerekir. Bu ek vakalar bir durumda olduğunu yapmak modelini etkileyebilir.

Sınıflar arası değişkenlik küçükse, bu önyargı çok fazla olmayacak, ancak bu durumda PCA ne sınıflandırmaya yardımcı olmaz: PCA projeksiyonu sınıflar arasındaki ayrımı vurgulamaya yardımcı olamaz.


Teşekkürler, bu tam olarak düşündüğüm şeydi, onu bağımsız bir kaynaktan duymak güzel. Veri setinin tamamındaki ilk PCA'nın sınıf etiketlerini görmeden sonuçları nasıl önyargıladığına dair bir fikir edinmeyi hala zor buluyorum.
Bitwise

@Bitwise: lütfen düzenlememe bakın
cbeleites, Monica

Merhaba @cbeleites, bu konuyu PCA ve tren / test bölme (çok var!) İle ilgili sorular için "kanonik" bir konu yapmak ve bunları yinelenen olarak işaretlemek istiyorum. Cevabınıza, tekrarlanan sorularda sıklıkla ortaya çıkan bir yanlış anlaşılmayı giderebilecek bir cümle ekleme özgürlüğünü kullandım. Umarım düzenlememden memnunsunuzdur, ancak lütfen kontrol edin! +1, btw.
amip diyor Reinstate Monica,

@ amoeba, çok teşekkür ederim. Evet, bu eklediğiniz önemli bir nokta. Soru koleksiyonunu temizlediğiniz çalışma için çok teşekkürler.
cbeleites, Monica

1
@FelipeAlmeida: evet
cbeleites, Monica

2

Bu sorunun cevabı deneysel tasarımınıza bağlıdır. PCA, tahmin etmeye çalıştığınız verileri bilmeden önce modelinizi inşa etmeniz gerekmediği sürece tüm veri seti üzerinde yapılabilir. Bazıları bilinen ve bazıları bilinmeyen örneklere sahip olduğunuz bir veri kümeniz varsa ve PCA'daki bilinmeyenler de dahil olmak üzere bilinmeyenleri tahmin etmek istiyorsanız, PCA'daki bilinmeyenler de dahil olmak üzere veri çeşitliliğini daha zengin göreceksiniz ve performansın iyileştirilmesine yardımcı olabilirsiniz. Modelin PCA denetimsiz olduğundan, "zirveye çıkmaz" çünkü bilinmeyen numunelere yaptığınız gibi aynı şeyi yapabilirsiniz.

Öte yandan, modeli şimdi oluşturmanız gereken bir veri setine sahipseniz ve gelecekte bir noktada, bu önceden oluşturulmuş modeli kullanarak tahmin etmeniz gereken yeni örnekler alacaksanız, her bir katlamada ayrı PCA yapmanız gerekir. genelleşeceğinden emin olmak için. Bu durumda, yeni özelliklerin nasıl görüneceğini bilemeyeceğimizden ve yeni özellikleri hesaba katacak şekilde modeli yeniden oluşturamadığımızdan, test verileri üzerinde PCA yapmak “zirveye çıkacaktır”. Bu durumda, bilinmeyen numunelerin hem özellikleri hem de sonuçları, model pratikte kullanılacakken mevcut değildir, bu nedenle modeli eğitirken mevcut olmamalıdır.


0

Sonuncusu, her seferinde eğitim seti PCA yapın

PCA'da indirgenmiş matrisi öğreniyoruz: U , projeksiyonu elde etmemize yardımcı oluyorZ_train = U x X_train

Test zamanda, biz aynı kullanmak U eğitim aşamasından öğrenilen ve daha sonra projeksiyon hesaplamakZ_test = U x X_test

Bu nedenle, temel olarak , test setini eğitim sırasında elde edilen azaltılmış özellik alanına yansıtıyoruz .

Bunun altında yatan varsayım, test ve tren setinin yukarıdaki yöntemi açıklayan aynı dağıtımdan gelmesi gerektiğidir.

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.