Menggunakan analisis komponen utama (PCA) untuk pemilihan fitur

54

Saya baru dalam pemilihan fitur dan saya ingin tahu bagaimana Anda akan menggunakan PCA untuk melakukan pemilihan fitur. Apakah PCA menghitung skor relatif untuk setiap variabel input yang dapat Anda gunakan untuk menyaring variabel input noninformatif? Pada dasarnya, saya ingin dapat memesan fitur asli dalam data berdasarkan varians atau jumlah informasi yang terkandung.

Michael
sumber

Jawaban:

75

Ide dasar ketika menggunakan PCA sebagai alat untuk pemilihan fitur adalah untuk memilih variabel sesuai dengan besarnya (dari terbesar ke terkecil dalam nilai absolut) dari koefisien mereka ( memuat ). Anda mungkin ingat bahwa PCA berusaha untuk mengganti variabel (lebih atau kurang berkorelasi) dengan k < p kombinasi linier tidak berkorelasi (proyeksi) dari variabel asli. Mari kita abaikan bagaimana memilih k yang optimal untuk masalah yang dihadapi. Mereka k komponen utama adalah peringkat oleh kepentingan melalui varians mereka menjelaskan, dan masing-masing memberikan kontribusi variabel dengan berbagai derajat masing-masing komponen. Menggunakan kriteria varians terbesar akan mirip dengan ekstraksi fiturpk<pkk , di mana komponen utama digunakan sebagai fitur baru, bukan variabel asli. Namun, kita dapat memutuskan untuk hanya menyimpan komponen pertama dan memilih variabel yang memiliki koefisien absolut tertinggi; angka j mungkin didasarkan pada proporsi jumlah variabel (mis., pertahankan hanya 10% teratas dari variabel p ), atau cutoff tetap (misalnya, pertimbangkan ambang batas pada koefisien dinormalisasi). Pendekatan ini memiliki kemiripan dengan operator Lasso dalam regresi yang dihukum (atau regresi PLS ). Namun, baik nilai j , maupun jumlah komponen yang harus dipertahankan bukanlah pilihan yang jelas.j<pjpj

Masalah dengan menggunakan PCA adalah bahwa (1) pengukuran dari semua variabel asli digunakan dalam proyeksi ke ruang dimensi yang lebih rendah, (2) hanya hubungan linier yang dipertimbangkan, dan (3) metode berbasis PCA atau SVD, serta sebagai metode skrining univariat (uji-t, korelasi, dll.), jangan memperhitungkan sifat multivariat yang potensial dari struktur data (misalnya, interaksi tingkat tinggi antar variabel).

Tentang poin 1, beberapa metode skrining yang lebih rumit telah diusulkan, misalnya analisis fitur utama atau metode bertahap, seperti yang digunakan untuk ' pencukuran gen ' dalam studi ekspresi gen. Juga, PCA jarang dapat digunakan untuk melakukan pengurangan dimensi dan pemilihan variabel berdasarkan beban variabel yang dihasilkan. Tentang poin 2, dimungkinkan untuk menggunakan kernel PCA (menggunakan trik kernel ) jika seseorang perlu menanamkan hubungan nonlinear ke ruang dimensi yang lebih rendah. Pohon keputusan , atau lebih baik algoritma hutan acak , mungkin lebih mampu untuk menyelesaikan Poin 3. Yang terakhir memungkinkan untuk mendapatkan langkah-langkah berbasis variabel atau permutasi dari kepentingan variabel .

Poin terakhir: Jika Anda berniat melakukan pemilihan fitur sebelum menerapkan model klasifikasi atau regresi, pastikan untuk memvalidasi silang seluruh proses (lihat §7.10.2 dari Elemen Pembelajaran Statistik , atau Ambroise dan McLachlan, 2002 ).


Karena Anda tampaknya tertarik pada solusi R, saya akan merekomendasikan untuk melihat pada paket caret yang mencakup banyak fungsi praktis untuk preprocessing data dan pemilihan variabel dalam konteks klasifikasi atau regresi.

chl
sumber
1
Ada banyak informasi bagus di sini, tetapi saya terkejut bahwa tidak disebutkan EFA. Saya pikir analisis faktor sesuai untuk pemilihan fitur / pengurangan dimensi, & PCA benar-benar hanya sesuai untuk merepresentasikan kembali data Anda sehingga variabel tidak berkorelasi. Saya kira Anda tidak setuju?
gung - Reinstate Monica
3
np
Ini jelas masalah yang sulit dan bernuansa. Karena Anda tahu lebih banyak tentang itu daripada saya, saya tertarik pada pendapat Anda. +1, btw.
gung - Reinstate Monica
2
Dua komentar Pertama, Anda menyebutkan kPCA sebagai salah satu solusi yang memungkinkan untuk poin Anda 2. Tetapi bagaimana kPCA dapat digunakan untuk pemilihan fitur, ketika vektor / pemuatan eigen tidak tersedia di sana? Ada pertanyaan tambahan tentang itu, dan saya berpendapat di sana bahwa itu tidak bisa . Kedua, kedua Anda sebelum paragraf terakhir dapat meningkat banyak jika Anda menyebutkan LASSO, sebagai cara pilihan (?) Untuk melakukan pemilihan fitur dalam regresi. Utas ini tetap sangat populer dan banyak pertanyaan ditutup sebagai duplikatnya, jadi penting bahwa jawaban Anda sebaik mungkin!
Amuba kata Reinstate Monica
@ chl, terima kasih atas jawaban informatif Anda. Anda berbicara tentang "memutuskan untuk hanya menyimpan komponen pertama". Mengapa hanya komponen pertama? Dengan satu komponen, mudah untuk menentukan peringkat fitur / variabel. Bagaimana Anda melakukannya dengan banyak komponen, katakan 3? Bagaimana Anda memberi peringkat variabel di seluruh komponen? Saya kira Anda bisa melalui setiap komponen utama, dan memilih fitur dengan pemuatan terbesar dari komponen utama itu, dari serangkaian fitur yang belum diambil. Ini lagi dapat dipilih dengan angka (j) atau dengan ambang batas koefisien dinormalisasi. Apa kamu setuju?
Sother
6

Dengan serangkaian fitur N, analisis PCA akan menghasilkan (1) kombinasi linier fitur dengan varian tertinggi (komponen PCA pertama), (2) kombinasi linier dengan varian tertinggi dalam subruang ortogonal ke komponen PCA pertama, dan sebagainya. (di bawah batasan bahwa koefisien kombinasi membentuk vektor dengan norma satuan) Apakah kombinasi linear dengan varian maksimum adalah fitur "baik" benar-benar tergantung pada apa yang Anda coba prediksi. Untuk alasan ini saya akan mengatakan bahwa menjadi komponen PCA dan menjadi fitur "baik" adalah (secara umum) dua gagasan yang tidak terkait.

mepuzza
sumber
(-1) Saya tidak melihat bagaimana ini menjawab pertanyaan asli sama sekali.
Amuba mengatakan Reinstate Monica
-1

Anda tidak dapat memesan fitur berdasarkan variansnya, karena varians yang digunakan dalam PCA pada dasarnya adalah entitas multidimensi. Anda hanya dapat memesan fitur dengan proyeksi varians ke arah tertentu yang Anda pilih (yang biasanya merupakan compnonet utama pertama). Jadi, dengan kata lain, apakah fitur memiliki varians lebih dari anther satu tergantung pada bagaimana Anda memilih arah proyeksi Anda.

James LI
sumber
2
Saya tidak mengerti: masing-masing fitur asli memang memiliki varian, jadi tentu saja seseorang dapat "memesan fitur berdasarkan variannya". Selain itu, saya tidak mengerti bagaimana seseorang dapat memesannya "dengan proyeksi varian ke arah tertentu yang Anda pilih". Bagaimana apanya?
Amoeba berkata Reinstate Monica
Anda memang dapat menggunakan varians untuk memesan fitur, hanya saja ada hubungannya dengan PCA, yang memperlakukan semua fitur secara bersamaan.
James LI
Tentang proyeksi: Jika Anda memiliki n fitur, vektor arah hanyalah vektor satuan dalam ruang n-dimensi; proyeksi vektor m instance Anda adalah produk skala vektor contoh dengan vektor satuan tersebut, yang menghasilkan vektor dimensi saya. Dan varian dari vektor m-dimensional ini adalah "proyeksi" dari varian dataset ke arah yang dipilih.
James LI
1
-1. Saya pikir setiap satu dari tiga kalimat dalam jawaban Anda salah atau begitu tidak jelas sehingga menyesatkan. Saya setuju dengan semua yang Anda tulis di komentar, tetapi saya tidak tahu bagaimana jawaban Anda dapat diartikan sebagai itu. "Anda tidak dapat memesan fitur berdasarkan variansnya" - ?? "Anda hanya dapat memesan fitur dengan proyeksi varian ke arah tertentu" - ?? "Apakah suatu fitur memiliki varian lebih ... tergantung ..." - ?? Semua itu salah.
Amoeba berkata Reinstate Monica
2
Saya tidak menyadari bahwa pertanyaan ini sudah lama ditanyakan; dan saya setuju dengan sebagian besar tanggapan ini. Maksud saya adalah: PCA tidak sesuai untuk pemilihan fitur. Tidak ada seorang pun di sini yang ingin mengatakan ini secara langsung.
James LI