Apakah PCA dianggap sebagai algoritma pembelajaran mesin

10

Saya telah memahami bahwa analisis komponen utama adalah teknik reduksi dimensionalitas yaitu dengan memberikan 10 fitur input, ini akan menghasilkan sejumlah kecil fitur independen yang merupakan transformasi ortogonal dan linear dari fitur asli.

Apakah PCAdengan sendirinya dianggap sebagai algoritma pembelajaran atau merupakan langkah pra-pemrosesan data.

Pemenang
sumber

Jawaban:

9

Tidak jarang seseorang memberi label teknik yang tidak diawasi. Anda dapat melakukan beberapa analisis pada vektor eigen dan itu membantu menjelaskan perilaku data. Wajar jika transformasi Anda masih memiliki banyak fitur, maka proses ini bisa sangat sulit. Namun demikian itu mungkin jadi saya menganggapnya pembelajaran mesin.

Edit:

Karena jawaban saya dipilih (tidak tahu mengapa) saya pikir saya akan menambahkan lebih banyak detals.

PCA melakukan dua hal yang setara. Pertama, dan apa yang biasa disebut, itu memaksimalkan varians. Kedua, meminimalkan kesalahan rekonstruksi dengan melihat jarak yang berpasangan.

Dengan melihat vektor eigen dan nilai eigen, menjadi lebih mudah untuk menyimpulkan variabel dan fitur mana yang berkontribusi terhadap varians dan juga bagaimana berbagai variabel bergerak bersamaan dengan yang lain.

Pada akhirnya, itu benar-benar tergantung pada bagaimana Anda mendefinisikan "pembelajaran". PCA mempelajari ruang fitur baru yang menangkap karakteristik ruang asli. Saya cenderung berpikir itu bisa bermakna.

Apakah ini rumit? Tidak, tidak juga, tetapi apakah itu menghilangkannya sebagai suatu algoritma? Tidak, kurasa tidak.

Pucuk topi
sumber
3
Saya merasa jawaban ini murni pendapat dan tidak menyajikan argumen. Mungkin menguraikan, memasukkan dan mengakui poin yang dibuat oleh orang lain.
Hobbes
15

PCA sebenarnya hanya rotasi. Serius, itu saja: itu cara cerdas untuk memutar data ke basis baru. Dasar ini memiliki sifat yang menjadikannya berguna sebagai langkah pra-pemrosesan untuk beberapa prosedur.

  1. Dasarnya adalah ortonormal . Ini sangat berguna jika fitur Anda menunjukkan multikolinearitas (dua atau lebih fitur tergantung secara linear): menerapkan PCA dijamin memberi Anda dasar di mana ini tidak lagi menjadi masalah. Prosedur ini dikenal sebagai regresi komponen utama

  2. Vektor dasar bermakna sehubungan dengan penyebaran data: mereka adalah vektor eigen dari matriks kovarians . Properti kedua ini memunculkan utilitas PCA yang terkenal sebagai teknik pengurangan dimensionalitas: setelah memutar data, memproyeksikan data ke subset dari vektor basis yang terkait dengan bagian signifikan dari total varians menghasilkan representasi dimensi yang lebih rendah yang (sering) tetap dipertahankan ( sebagian besar) sifat struktural (menarik) dari data.


Jadi: apakah ini algoritma pembelajaran? Ini semacam pertanyaan filosofis. Apa yang menjadikan sesuatu algoritma pembelajaran? Tentu saja PCA bukan algoritma pembelajaran "diawasi" karena kita dapat melakukannya dengan atau tanpa variabel target, dan kami biasanya mengaitkan teknik "tidak diawasi" dengan pengelompokan.

Ya, PCA adalah prosedur preprocessing. Tetapi sebelum Anda menuliskannya sepenuhnya sebagai bukan "belajar" sesuatu, saya ingin Anda mempertimbangkan yang berikut: PCA dapat dihitung dengan benar-benar mengambil vektor eigen dari matriks kovarians, tetapi ini bukan bagaimana umumnya dilakukan dalam praktik. Prosedur yang setara secara numerik dan lebih efisien secara komputasi adalah dengan hanya mengambil SVD data. Oleh karena itu, PCA hanyalah aplikasi spesifik SVD, jadi menanyakan apakah PCA adalah algoritma pembelajaran benar-benar menanyakan apakah SVD adalah algoritma pembelajaran.

Sekarang, meskipun Anda mungkin merasa nyaman menulis PCA sebagai bukan algoritma pembelajaran, inilah mengapa Anda harus kurang nyaman melakukan hal yang sama dengan SVD: ini adalah metode yang sangat kuat untuk pemodelan topik dan penyaringan kolaboratif . Properti SVD yang membuatnya berguna untuk aplikasi ini adalah properti yang persis sama yang membuatnya berguna untuk pengurangan dimensionalitas (yaitu PCA).

SVD adalah generalisasi dari komposisi eigend, dan itu juga sangat kuat bahkan sebagai versi SVD yang terbatas. Anda dapat melakukan deteksi komunitas pada grafik dengan melihat vektor eigen dari matriks adjacency, atau menentukan probabilitas kondisi-mapan dari model markov dengan melihat vektor eigen dari matriks transisi, yang secara kebetulan juga pada dasarnya adalah bagaimana PageRank dihitung.

Di bawah tenda, PCA melakukan operasi aljabar linier sederhana. Tapi, ini persis operasi yang sama yang mendasari banyak aplikasi yang kebanyakan orang tidak akan mempertanyakan penerapan label "pembelajaran mesin". Kelas algoritma ini disebut Matrix Factorization , dan bahkan meluas ke teknik canggih seperti word2vec : memang, Anda benar-benar bisa mendapatkan hasil seperti word2vec dengan benar-benar hanya menerapkan PCA ke matriks co-occrrence kata . Generalisasi lagi, kata lain untuk hasil PCA adalah embedding . Word2vec mungkin merupakan contoh embedding yang paling terkenal, tetapi membangun embeddings (sebagai perantara) juga merupakan komponen penting dari arsitektur encoder-decoder yang digunakan dalam RNNsdan GAN , yang merupakan ujung pendarahan dari penelitian ML saat ini.


Jadi kembali ke pertanyaan Anda: apakah PCA adalah "algoritma pembelajaran mesin?" Nah, jika tidak, Anda harus siap untuk mengatakan hal yang sama tentang pemfilteran kolaboratif, pemodelan topik, deteksi komunitas, sentralitas jaringan, dan model penyematan juga.

Hanya karena itu aljabar linier sederhana tidak berarti itu juga bukan sihir.

David Marx
sumber
6

Tentu saja, ini bukan algoritma pembelajaran, karena Anda tidak belajar apa pun di PCA. Namun, ini dapat digunakan dalam algoritma pembelajaran yang berbeda untuk mencapai kinerja yang lebih baik secara nyata, seperti kebanyakan metode pengurangan dimensi lainnya.

Oh Tuhan
sumber
4

PCA digunakan untuk menghilangkan fitur yang berlebihan. Ini menemukan arah data yang sangat terdistribusi. Tidak peduli dengan label data, karena itu adalah proyeksi yang mewakili data dalam arti kuadrat-terkecil. Analisis Diskriminan Berganda, MDAcobalah untuk menemukan proyeksi yang memisahkan data terbaik. Yang terakhir menganggap label dan menemukan arah bahwa data dapat dipisahkan yang terbaik, meskipun memiliki beberapa detail tentang jenis keputusan yang ditemukan. Untuk menyelesaikan, PCAbukan algoritma pembelajaran. Itu hanya mencoba untuk menemukan arah data mana yang sangat terdistribusi untuk menghilangkan fitur yang berkorelasi. Pendekatan serupa seperti MDAmencoba mencari arah untuk mengklasifikasikan data. Meskipun MDAsangat miripPCA, tetapi yang pertama digunakan untuk klasifikasi, itu menganggap label, tetapi yang terakhir tidak langsung digunakan untuk klasifikasi.

Media
sumber