Mengapa kita menggunakan PCA untuk mempercepat algoritma pembelajaran padahal kita bisa mengurangi jumlah fitur?

12

Dalam kursus pembelajaran mesin, saya belajar bahwa salah satu penggunaan umum PCA ( Principal Component Analysis ) adalah untuk mempercepat algoritma pembelajaran mesin lainnya. Misalnya, bayangkan Anda sedang melatih model regresi logistik. Jika Anda memiliki set pelatihan untuk saya dari 1 ke n dan ternyata dimensi vektor x Anda sangat besar (katakanlah dimensi), Anda dapat menggunakan PCA untuk mendapatkan dimensi yang lebih kecil (katakanlah dimensi k) vektor fitur z. Kemudian Anda dapat melatih model regresi logistik Anda pada set pelatihan ( z ( i ) , y ( i )(x(i),y(i)) untuk saya dari 1 hingga n. Pelatihan model ini akan lebih cepat karena vektor fitur Anda memiliki dimensi lebih sedikit.(z(i),y(i))

Namun, saya tidak mengerti mengapa Anda tidak bisa hanya mengurangi dimensi vektor fitur Anda menjadi dimensi k hanya dengan memilih k fitur Anda secara acak dan menghilangkan sisanya.

Zektor adalah kombinasi linear dari vektor fitur Anda. Karena vektor z terbatas pada permukaan k-dimensi, Anda dapat menulis nilai-nilai fitur yang dihilangkan ak sebagai fungsi linear dari nilai-nilai fitur k yang tersisa, dan dengan demikian semua z dapat dibentuk oleh kombinasi linear dari fitur k Anda. Jadi bukankah model yang dilatih pada set pelatihan dengan fitur yang dihilangkan memiliki kekuatan yang sama dengan model yang dilatih pada set pelatihan yang dimensinya dikurangi oleh PCA? Apakah itu hanya tergantung pada jenis model dan apakah itu bergantung pada semacam kombinasi linear?

pengguna35734
sumber
1
kolom drop akan menyebabkan kehilangan lebih banyak informasi dibandingkan dengan menggunakan PCA
Haitao Du
2
Apa yang harus dilakukan dengan Reaksi Rantai Polimerase? :-) --- Dalam keseriusan, Anda harus selalu mengeja istilah sebelum menggunakan singkatan.
Carl Witthoft
Anda dapat melihat vektor eigen yang diperoleh PCA sebagai fitur baru, sehingga PCA memang memungkinkan pengurangan fitur - dengan menggabungkan kembali yang kita miliki menjadi yang menangkap lebih banyak varians daripada yang kita mulai.
mathreadler
1
Sangat terkait: stats.stackexchange.com/questions/141864 .
Amuba kata Reinstate Monica

Jawaban:

26

pd<pdXXDD{0,1}p×dXXVVRp×dVXVXXdpp

XX

jld
sumber
2
+1. Masih masuk akal untuk bertanya, mengapa variasi dalam X (yang PCA coba pertahankan) harus relevan untuk memprediksi Y ... Ini adalah utas terkait: stats.stackexchange.com/questions/141864 .
Amuba kata Reinstate Monica
4

PCA mengurangi fitur sambil mempertahankan varians / informasi dalam data asli. Ini membantu dengan mengaktifkan komputasi tanpa kehilangan kemiripan data dengan kenyataan.

eiTan LaVi
sumber
2

Solusi PCA

Pertama, waspadalah saat menggunakan PCA untuk tujuan ini. Seperti yang saya tulis dalam menanggapi pertanyaan terkait, PCA tidak selalu mengarah pada pemilihan fitur yang informatif untuk regresi yang ingin Anda lakukan (lihat juga Jolliffe 1982 ).

Solusi yang diusulkan OP

reduce the dimension of your feature vector to k dimensions by just choosing k of your features at random and eliminating the rest.dimension of your vector x is very largep

pCkkpp=1000k=58.25×1012k=5k=6p pengaturan .

Solusi yang disarankan

p

dugaan
sumber