Pengurangan dimensionalitas yang efisien untuk dataset besar

12

Saya memiliki dataset dengan baris ~ 1M dan ~ fitur 500K jarang. Saya ingin mengurangi dimensi ke suatu tempat dalam urutan fitur padat 1K-5K.

sklearn.decomposition.PCAtidak berfungsi pada data yang jarang, dan saya sudah mencoba menggunakan sklearn.decomposition.TruncatedSVDtetapi mendapatkan kesalahan memori dengan cukup cepat. Apa pilihan saya untuk pengurangan dimensi efisien pada skala ini?

timleathart
sumber

Jawaban:

11

Pernahkah Anda mendengar tentang Seragam Aproksimasi dan Proyeksi (UMAP) ?

UMAP (Uniform Manifold Approximation and Projection) adalah teknik pembelajaran berjenis novel untuk pengurangan dimensi non-linear. UMAP dibangun dari kerangka teori yang didasarkan pada geometri Riemannian dan topologi aljabar. Hasilnya adalah algoritma scalable praktis yang berlaku untuk data dunia nyata. Algoritma UMAP kompetitif dengan t-SNE untuk kualitas visualisasi, dan bisa dibilang lebih mempertahankan struktur global dengan kinerja run time yang unggul. Selain itu, UMAP seperti yang dijelaskan tidak memiliki batasan komputasi pada dimensi penyematan, menjadikannya layak sebagai teknik reduksi dimensi tujuan umum untuk pembelajaran mesin.

Periksa kode dan kertas asli mereka untuk daftar pro dan kontra, sangat mudah digunakan.

Fakta Singkat : UMAP dapat menangani kumpulan data besar dan lebih cepat daripada t-SNE dan juga mendukung pemasangan data matriks yang jarang, dan bertentangan dengan t-SNE, teknik pengurangan dimensi tujuan umum, yang berarti bahwa tidak hanya dapat digunakan untuk visualisasi tetapi juga untuk mengurangi ruang fitur untuk dimasukkan ke model pembelajaran mesin lainnya.

Contoh Beton: Saya telah membandingkan metode ini dan membandingkannya dengan beberapa notebook benchmark teknik pengurangan dimensi lain , jika tertarik untuk memiliki tampilan yang cepat dan lompatan awal.

TwinPenguins
sumber
2
(+1) - UMAP memang luar biasa! Anda mungkin mempertimbangkan untuk melakukan reformation sedikit: Paragraf Anda di tengah dan poin-poin berikut mengulangi informasi yang sama. Juga, Anda bisa membuatnya sebagai kutipan, karena ini (kurang lebih) disalin dari situs web mereka.
n1k31t4
2
Tentu, saya pasti bisa menguranginya, saya hanya ingin menunjukkannya di sini dan beberapa poin sedikit disusun ulang. Terima kasih. Bagaimanapun saya suka UMAP.
TwinPenguins
1
Terima kasih untuk rekomendasinya! Saya tahu itu sebagai alternatif untuk t-SNE untuk visualisasi, tetapi tidak menyadari itu juga baik untuk pengurangan dimensi umum.
timleathart
1

Kalau-kalau ada orang yang menemukan posting ini menganggap UMAP tidak cukup efisien, berikut beberapa teknik lain yang saya temukan yang bahkan lebih efisien (tetapi tidak berkualitas tinggi):

  • d × mdmsklearn.random_projection

  • mmsklearn.feature_extraction.FeatureHasher

timleathart
sumber