Apakah masuk akal untuk melakukan PCA sebelum melakukan Klasifikasi Hutan Acak?
Saya berurusan dengan data teks dimensi tinggi, dan saya ingin melakukan pengurangan fitur untuk membantu menghindari kutukan dimensi, tetapi bukankah Random Forests sudah melakukan semacam pengurangan dimensi?
mtry
parameter) untuk membangun setiap pohon. Ada juga teknik penghapusan fitur rekursif yang dibangun di atas algoritma RF (lihat paket varSelRF R dan referensi di dalamnya). Namun demikian, tentu mungkin untuk menambahkan skema pengurangan data awal, meskipun harus menjadi bagian dari proses cross-validasi. Jadi pertanyaannya adalah: apakah Anda ingin memasukkan kombinasi linier fitur Anda ke RF?Jawaban:
Leo Brieman menulis bahwa "dimensi bisa menjadi berkah". Secara umum, hutan acak dapat berjalan pada kumpulan data besar tanpa masalah. Seberapa besar data Anda? Bidang yang berbeda menangani berbagai hal dengan cara yang berbeda tergantung pada pengetahuan materi pelajaran. Sebagai contoh, dalam studi ekspresi gen, gen sering dibuang berdasarkan varians rendah (tidak mengintip hasil) dalam proses yang kadang-kadang disebut penyaringan non-spesifik. Ini dapat membantu dengan waktu berjalan di hutan acak. Tapi itu tidak wajib.
Berpegang teguh pada contoh ekspresi gen, terkadang analis menggunakan skor PCA untuk mewakili pengukuran ekspresi gen. Idenya adalah mengganti profil serupa dengan satu skor yang berpotensi kurang berantakan. Hutan acak dapat dijalankan baik pada variabel asli atau skor PCA (pengganti untuk variabel). Beberapa melaporkan hasil yang lebih baik dengan pendekatan ini, tetapi tidak ada perbandingan yang baik untuk pengetahuan saya.
Singkatnya, tidak perlu melakukan PCA sebelum menjalankan RF. Tapi kamu bisa. Penafsiran bisa berubah tergantung pada tujuan Anda. Jika yang ingin Anda lakukan hanyalah memprediksi, interpretasi mungkin kurang penting.
sumber
Saya ingin menambahkan dua sen ke ini karena saya pikir jawaban yang ada tidak lengkap.
Melakukan PCA dapat sangat berguna sebelum melatih hutan acak (atau LightGBM, atau metode berbasis pohon keputusan lainnya) untuk satu alasan tertentu yang saya ilustrasikan dalam gambar di bawah ini.
Pada dasarnya, ini dapat membuat proses menemukan batas keputusan yang sempurna jauh lebih mudah dengan menyelaraskan set latihan Anda di sepanjang arah dengan varians tertinggi.
Pohon keputusan sensitif terhadap rotasi data, karena batas keputusan yang mereka buat selalu vertikal / horizontal (yaitu tegak lurus terhadap salah satu sumbu). Oleh karena itu, jika data Anda terlihat seperti gambar kiri, akan dibutuhkan pohon yang jauh lebih besar untuk memisahkan kedua klaster ini (dalam hal ini adalah pohon 8 layer). Tetapi jika Anda menyelaraskan data Anda di sepanjang komponen utamanya (seperti di gambar kanan), Anda dapat mencapai pemisahan sempurna hanya dengan satu lapisan!
Tentu saja, tidak semua dataset didistribusikan seperti ini, jadi PCA mungkin tidak selalu membantu, tetapi masih berguna untuk mencobanya dan melihat apakah itu benar. Dan hanya pengingat, jangan lupa untuk menormalkan ulang dataset Anda ke varian unit sebelum melakukan PCA!
PS: Untuk pengurangan dimensionalitas, saya akan setuju dengan orang-orang lain karena biasanya tidak masalah besar untuk hutan acak seperti untuk algoritma lainnya. Tapi tetap saja, ini mungkin sedikit membantu mempercepat latihan Anda. Waktu pelatihan pohon keputusan adalah O (n m log (m)), di mana n adalah jumlah instance pelatihan, m - jumlah dimensi. Dan meskipun hutan acak secara acak memilih subset dimensi untuk setiap pohon yang akan dilatih, semakin rendah fraksi dari jumlah total dimensi yang Anda pilih, semakin banyak pohon yang perlu Anda latih untuk mencapai kinerja yang baik.
sumber
PCA sebelum hutan acak dapat bermanfaat bukan untuk pengurangan dimensi tetapi untuk memberi Anda data bentuk di mana hutan acak dapat melakukan lebih baik.
Saya yakin bahwa secara umum jika Anda mengubah data Anda dengan PCA menjaga dimensi yang sama dari data asli Anda akan memiliki klasifikasi yang lebih baik dengan hutan acak
sumber