PCA, boyutluluk örneklem sayısından büyük olduğunda


21

Bir sınıflandırıcıya geçmem gereken 14000 veri noktası (boyut) içeren 10 kişi için 10 sinyal / kişi (yani 100 örnek) bulunan bir senaryoya rastladım. Bu verinin boyutunu azaltmak istiyorum ve PCA bunu yapmanın yolu gibi görünüyor. Ancak, PCA'nın örneklerini yalnızca örnek sayısının boyut sayısından büyük olduğu yerlerde bulabildim. SVD kullanarak PC'leri bulan PCA uygulamasını kullanıyorum. 100x14000 veri setimden geçtiğimde 101 PC geri döndü, böylece boyutların büyük çoğunluğu açıkça göz ardı edildi. Program, ilk 6 PC'nin varyansın% 90'ını içerdiğini gösterir.

Bu 101 PC'nin temelde tüm varyansı içerdiği ve kalan boyutların ihmal edilebilir olduğu varsayımı makul mu?

Okuduğum yazılardan biri, benzer (biraz daha düşük kalitede) veri seti kullanarak, kendiminkinden daha düşük bir veri kümesi kullanarak, orijinal boyutun% 96'sını koruyarak 4500 boyutu düşürebildiklerini iddia ediyor. Kağıt, kullanılan PCA tekniğinin ayrıntılarına göre el sallıyor, yalnızca 3100 örnek mevcuttu ve PCA'yı gerçekleştirmek için (sınıflandırma aşamasından önyargıyı kaldırmak için) kullanılandan daha az numuneye inanmak için bir nedenim var.

Bir şey eksik mi, yoksa bu gerçekten PCA'nın yüksek boyutluluk düşük örneklem büyüklüğü veri kümesiyle kullanılma şekli midir? Herhangi bir geri bildirim çok takdir edilecektir.


2
Boyutlardan çok daha fazla veriye sahip değilseniz, ilk temel bileşenin yapması gereken şey olan değişkenliğin çoğunu kaldıran bir yön bulmak zordur. Genelde boyutsallığın laneti vardır. Veriler merkezden yüksek boyutlarda uzaklaşmaya meyillidir. Bellman bu konuda 1960'larda yazdı.
Michael R. Chernick

Yanıtlar:


9

Soruna biraz farklı bir açıdan bakardım: Ne kadar karmaşık bir model sadece 10 denek / 100 örnekle karşılayabilirsin?

Ve bu soruyu genellikle cevaplayacağım: 100 PC'den çok daha az. Farklı türde bir veri (titreşim spektrumları) üzerinde çalıştığımı, bu yüzden işler biraz değişebilir. Benim alanımda ortak bir kurulum, O (10) deneklerin O (1000) spektrumundan hesaplanan 10 veya 25 veya 50 PC kullanmak olacaktır.

İşte ne yaparım:

  • Bu 100 PC'nin kapsadığı varyansa bakın. Genelde, yalnızca birkaç bileşenin verilerimizdeki varyansa gerçekten katkıda bulunduğunu tespit ediyorum.

  • Sınıflandırmaya yardımcı olmayan yüksek bir varyasyona sahip olan yönleri ayırmada çok daha iyi bir iş çıkardığından (benim sınıfım farklı, farklı numune kalınlığında olabilir), PCA üzerinde sınıflandırma için ön işlem olarak PLS'yi çok daha fazla tercih ediyorum. ..). Tecrübelerime göre, 10 PLS gizli değişkenli veya 25 ila 50 PC'li benzer sınıflandırıcılara sahibim.

  • Doğrulama numunelerinin sadece eğitim setinden hesaplanan PCA rotasyonu ile işlenmesi gerekir, aksi takdirde doğrulama (ve sizinki muhtemelen sizin gibi) aşırı büyük zaman aşımına uğrayan önyargılı olabilir.
    Başka bir deyişle, önyükleme dışı veya çapraz doğrulama yaparsanız, PCA veya PLS ön işlemlerinin her tren / test seti kombinasyonu için ayrı ayrı hesaplanması gerekir.


Bilgilendirici yazılar için teşekkür ederiz. Biyometrik sinyal verileriyle çalışıyorum. Makul performansla sınıflandırma yapmak için 100'den az bilgisayara ihtiyacım var, 25-50 aralığında bir yerde iyi olurdu. İncelemem gereken örnek sayısını azaltmak için örnekleme oranımı düşürmeyi düşündüm, ancak çözüm takasının buna değeceğini mi düşünüyorsun yoksa eğitimin aynı büyüklükte olması durumunda herhangi bir etkisi olacak mı? ? PCA'nın bu alandaki diğer çalışmalarla tutarlı olmasına ihtiyacım olmasına rağmen, kesinlikle PLS'ye ikincil bir yaklaşım olarak bakacağım.
James

1
@James: Korkarım ki örnekleme oranı sorusu verilerinizi bilmeden cevaplanamaz. Temel olarak, etkili örneklem büyüklüğü sorunudur. Daha fazla bir şey bilmeden sadece n (şahıslar) ve n (örnekler) arasında bir yerde olduğunu söyleyebiliriz. 1 kişiden 10 örneğin tümü, farklı bir kişinin örneklerinden çok birbirine benziyorsa, o zaman daha fazla örnek veri kümesine fazla bilgi eklemez. Tüm örneklerle bir model ve kişi başına sadece bir örnek içeren ikinci bir model oluşturarak ve performanslarını karşılaştırarak kontrol edebilirsiniz.
cbeleites, Monica

@James: (bölüm 2) Bir kişinin örneklerinin birbirine oldukça benzer olduğunu düşünüyorsanız, validasyon ve eğitim setlerinin kişileri paylaşmamasına özen göstermelisiniz (örneğin , bir kişinin tüm örnekleri ya eğitimde ya da Deneme seti).
cbeleites, Monica

Bana geri döndüğün için teşekkürler. Verilerim, kullanıcı sınıfları arasındaki örneklem alanındaki önemli örtüşme ile oldukça yüksek bir değişkenlik derecesine sahiptir. Fakat üzgünüm, örnekleri azaltmak yerine, 14000 veri noktasındaki çözünürlüğü azaltmak anlamına geliyordu, bu nedenle PCA'da yalnızca her 2., 3. veya 4. noktanın kullanıldığını, ancak aynı sayıda gerçek kullanıcı örnekleminin kullanıldığını söyleyin. Çözünürlükteki böyle bir düşüşün, boyutlarım zaten numunelerimden çok daha büyük olması koşuluyla PCA'nın sonuçları üzerinde olumlu, olumsuz veya etkisinin olmaması beklenip istenmeyeceğini merak ediyordum.
James

1
@ James, bu yine değişir. Ama bunun yerine sadece her n kullanmanın t h Eğer boyutunu azaltmak için sinyal gürültü oranı artırmak böylece noktası, ben her n noktalarını binning / ortalama alma öneriyoruz. İhtiyacınız olan (veri noktası boyutunuz ne olursa olsun; buraya "spektral" koyarım) çözünürlüğünü bulmak IMHO'ya sorun / veri / sınıflandırıcı karakterizasyonunun karakterizasyonunun bir noktasıdır. th
cbeleites,


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.