Büyük veri kümesi için etkili boyutsallık azaltma


12

~ 1M satır ve ~ 500K seyrek özelliklere sahip bir veri setim var. 1K-5K yoğun özellik sırasına göre boyutlandırmayı bir yere azaltmak istiyorum.

sklearn.decomposition.PCAseyrek veriler üzerinde çalışmaz ve kullanmayı denedim sklearn.decomposition.TruncatedSVDama oldukça hızlı bir şekilde bellek hatası alıyorum. Bu ölçekte etkili boyutsallık azaltma seçeneklerim nelerdir?

Yanıtlar:


12

Duydunuz Üniforma Manifold uyumu ve Projeksiyon (UMAP) ?

UMAP (Düzgün Manifold Yaklaşımı ve Projeksiyonu) doğrusal olmayan boyut küçültme için yeni bir manifold öğrenme tekniğidir. UMAP, Riemann geometrisi ve cebirsel topolojisine dayanan teorik bir çerçeveden yapılmıştır. Sonuç, gerçek dünya verileri için geçerli olan pratik bir ölçeklenebilir algoritmadır. UMAP algoritması, görselleştirme kalitesi için t-SNE ile rekabetçidir ve tartışmasız olarak daha fazla çalışma süresi performansı ile küresel yapıyı korur. Ayrıca, tarif edildiği gibi UMAP'ın boyut katıştırma üzerinde hiçbir hesaplama kısıtlaması yoktur, bu da onu makine öğrenimi için genel amaçlı bir boyut küçültme tekniği olarak uygulanabilir kılar.

Artılarını ve eksilerini listesi için kodlarını ve orijinal kağıtlarını kontrol edin, kullanımı çok kolaydır.

Kısa Bilgiler: UMAP büyük veri kümelerini işleyebilir ve t-SNE'den daha hızlıdır ve aynı zamanda seyrek matris verilerine uyumu destekler ve genel amaçlı bir boyut küçültme tekniği olan t-SNE'nin aksine, sadece görselleştirme için değil, aynı zamanda görselleştirme için de kullanılabilir. diğer makine öğrenimi modellerine besleme için özellik alanını azaltmak için.

Somut Örnekler: Hızlı bir görünüm ve hızlı bir başlangıç ​​yapmak istiyorsanız, yöntemi karşılaştırdım ve diğer boyutsal küçültme teknikleri kıyaslama not defteri ile karşılaştırdım .


2
(+1) - UMAP gerçekten harika! Biraz yeniden biçimlendirmeyi düşünebilirsiniz: Ortadaki paragrafınız ve aşağıdaki mermi noktaları aynı bilgileri tekrarlar. Ayrıca, web sitesinden (az ya da çok) kopya yapıştırıldığı için bir teklif yapabilirsiniz.
n1k31t4

2
Tabii, kesinlikle azaltabilirim, sadece onları burada belirtmek istedim ve bazı noktalar biraz geri alındı. Teşekkürler. Her neyse UMAP'ı seviyorum.
TwinPenguins

1
Tavsiye için teşekkürler! Görselleştirme için t-SNE'ye bir alternatif olarak biliyordum, ancak genel boyutsal azalmanın da iyi olduğunu fark etmedim.
timleathart

1

Bu gönderiye giren insanların UMAP'ı yeterince verimli bulmaması durumunda, karşılaştığım daha verimli (ancak yüksek kalitede olmayan) bazı teknikler:

  • Rastgele Projeksiyon: Esasen rastgele bir şekil matrisi yapınd x m nerede d orijinal boyutluluk ve mistenen boyutsallıktır ve azaltılmış veri kümesini üretmek için veri matrisini projeksiyon matrisi ile çarpın. sklearn.random_projectionbunun bazı uygulamaları vardır. Yansıtma matrisinin boyutu ve dağılımı uygunsa, noktalar arasındaki çift mesafeler yansıtılan alanda neredeyse korunur.

  • Özellik Karması: Özellik değerlerinin bir karmasını alın, modülü alınm nerede mistenen boyutsallıktır. Karma çarpışmalarla, çarpışan değerlerin toplamı ele alınır. Bunu, özelliklerin sırasını karıştırmak, veri matrisini bir dizi dikey dilime bölmek ve hepsini bir araya getirerek düşünebilirsiniz. Seyrek veriler için, çarpışmalar oldukça nadirdir. sklearn.feature_extraction.FeatureHasher(inanıyorum) sadece dize girdileri üzerinde çalışan bir uygulamadır; Bence genellikle kelime torbası metin stili verileri için kullanılır.

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.