Hutan acak vs regresi


21

Saya menjalankan model regresi OLS pada kumpulan data dengan 5 variabel independen. Variabel independen dan variabel dependen keduanya kontinu dan terkait linier. R Square adalah sekitar 99,3%. Tetapi ketika saya menjalankan hal yang sama menggunakan hutan acak di R hasil saya adalah '% Var menjelaskan: 88,42'. Mengapa hasil hutan acak sangat kalah dengan regresi? Asumsi saya adalah bahwa hutan acak setidaknya sama baiknya dengan regresi OLS.


4
Jika tujuan Anda adalah untuk memprediksi, R-square yang lebih tinggi mungkin karena overfitting. Coba bandingkan prediksi RN dengan prediksi Regresi menggunakan cross-validation.
Manoel Galdino

Jawaban:


27

Saya tidak tahu persis apa yang Anda lakukan, jadi kode sumber Anda akan membantu saya untuk menebak lebih sedikit.

Banyak hutan acak pada dasarnya adalah jendela tempat rata-rata diasumsikan mewakili sistem. Ini adalah pohon CAR yang terlalu dimuliakan.

Katakanlah Anda memiliki pohon CAR dua daun. Data Anda akan dibagi menjadi dua tumpukan. Output (konstan) dari setiap tumpukan akan menjadi rata-rata.

Sekarang mari kita lakukan 1000 kali dengan himpunan bagian data acak. Anda masih akan memiliki daerah terputus-putus dengan output yang rata-rata. Pemenang dalam RF adalah hasil yang paling sering. Itu hanya "membingungkan" perbatasan antara kategori.

Contoh output linear sedikit demi sedikit dari pohon CART:

Katakanlah, misalnya, bahwa fungsi kita adalah y = 0,5 * x + 2. Plot yang terlihat seperti berikut: Gambar 1

Jika kita memodelkan ini menggunakan pohon klasifikasi tunggal dengan hanya dua daun maka kita pertama-tama akan menemukan titik split terbaik, membagi pada titik itu, dan kemudian memperkirakan fungsi output di setiap daun sebagai output rata-rata di atas daun.

plot dengan CART sepele

Jika kita melakukan ini lagi dengan lebih banyak daun di pohon CART maka kita mungkin mendapatkan yang berikut: masukkan deskripsi gambar di sini

Mengapa CAR-hutan?

Anda dapat melihat bahwa, dalam batas daun tanpa batas, pohon CART akan menjadi pendekatan yang dapat diterima.

Masalahnya adalah dunia nyata itu berisik. Kami suka berpikir dalam cara, tetapi dunia menyukai kecenderungan sentral (mean) dan kecenderungan variasi (std dev). Ada suara berisik.

Hal yang sama yang memberi CAR-tree kekuatan besar, kemampuannya menangani diskontinuitas, membuatnya rentan terhadap pemodelan noise seolah-olah itu adalah sinyal.

Jadi Leo Breimann membuat proposisi sederhana namun kuat: gunakan metode Ensemble untuk membuat pohon Klasifikasi dan Regresi kuat. Dia mengambil himpunan bagian acak (sepupu resampling bootstrap) dan menggunakannya untuk melatih hutan pohon CAR. Ketika Anda mengajukan pertanyaan tentang hutan, seluruh hutan berbicara, dan jawaban paling umum diambil sebagai hasilnya. Jika Anda berurusan dengan data numerik, akan berguna untuk melihat ekspektasi sebagai output.

Jadi untuk plot kedua, pikirkan tentang pemodelan menggunakan hutan acak. Setiap pohon akan memiliki subset data acak. Itu berarti bahwa lokasi titik perpecahan "terbaik" akan bervariasi dari pohon ke pohon. Jika Anda membuat plot output dari hutan acak, saat Anda mendekati diskontinuitas, beberapa cabang pertama akan menunjukkan lompatan, lalu banyak. Nilai rata-rata di wilayah itu akan melintasi jalur sigmoid yang mulus. Bootstrapping berbelit-belit dengan Gaussian, dan Gaussian blur pada fungsi step itu menjadi sigmoid.

Garis bawah:

Anda membutuhkan banyak cabang per pohon untuk mendapatkan perkiraan yang baik untuk fungsi yang sangat linier.

Ada banyak "tombol" yang dapat Anda ubah untuk mempengaruhi jawaban, dan Anda tidak mungkin mengatur semuanya ke nilai yang benar.

Referensi:


Bukankah regresi hutan RANDOM dilakukan dengan fungsi yang konstan, yang jelas kurang cocok untuk data yang terkait secara linear?
seanv507

Saya pikir kita mengatakan hal yang sama. Konstanta mana yang digunakan? kanan.
EngrStudent

Jika saya pikir kami mengatakan hal yang sama saya akan meletakkannya sebagai komentar. Saya tidak mengerti jawaban Anda. Jawaban saya menjelaskan bahwa data OP adalah linier dan sangat tidak cocok dengan fungsi konstan satu demi satu.
seanv507

@ seanv507 Manfaat dari RF adalah bahwa banyak pohon, sesuai dengan (himpunan bagian dari) versi data yang terganggu, rata-rata keluar dari diskontinuitas. Hasilnya adalah perkiraan yang lebih baik untuk garis halus yang mendasari daripada apa yang dihasilkan pohon tunggal.
Hong Ooi

Ini pada dasarnya bootstrap resampling pada pohon regresi. Salah satu hal yang saya tidak suka tentang bootstrap adalah bahwa distribusi seragam dianggap sebagai informasi yang informatif. Bukankah ini kasus ideal yang sebelumnya tidak informatif?
EngrStudent

7

Saya perhatikan bahwa ini adalah pertanyaan lama, tetapi saya pikir lebih banyak harus ditambahkan. Seperti @Manoel Galdino katakan dalam komentar, biasanya Anda tertarik pada prediksi data yang tidak terlihat. Tetapi pertanyaan ini adalah tentang kinerja pada data pelatihan dan pertanyaannya adalah mengapa hutan acak berkinerja buruk pada data pelatihan ? Jawabannya menyoroti masalah yang menarik dengan pengklasifikasi kantong yang sering menyebabkan masalah bagi saya: regresi ke nilai rata-rata.

Masalahnya adalah bahwa pengklasifikasi kantong seperti hutan acak, yang dibuat dengan mengambil sampel bootstrap dari kumpulan data Anda, cenderung berkinerja buruk di ekstrem. Karena tidak ada banyak data di ekstrem, mereka cenderung dihaluskan.

Lebih rinci, ingat bahwa hutan acak untuk regresi rata-rata prediksi sejumlah besar pengklasifikasi. Jika Anda memiliki satu titik yang jauh dari yang lain, banyak pengklasifikasi tidak akan melihatnya, dan ini pada dasarnya akan membuat prediksi out-of-sample, yang mungkin tidak terlalu baik. Faktanya, prediksi out-of-sample ini akan cenderung menarik prediksi untuk titik data menuju rata-rata keseluruhan.

Jika Anda menggunakan pohon keputusan tunggal, Anda tidak akan memiliki masalah yang sama dengan nilai-nilai ekstrem, tetapi regresi pas tidak akan sangat linier juga.

Berikut adalah ilustrasi dalam R. Beberapa data dihasilkan ydengan kombinasi liner sempurna dari lima xvariabel. Kemudian prediksi dibuat dengan model linier dan hutan acak. Kemudian nilai-nilai ypada data pelatihan diplot terhadap prediksi. Anda dapat dengan jelas melihat bahwa hutan acak berkinerja buruk di ekstrem karena titik data dengan nilai yang sangat besar atau sangat kecil sangat yjarang.

Anda akan melihat pola yang sama untuk prediksi data yang tidak terlihat ketika hutan acak digunakan untuk regresi. Saya tidak yakin bagaimana cara menghindarinya. The randomForestfungsi dalam R memiliki bias opsi koreksi minyak mentah corr.biasyang menggunakan regresi linear pada bias, tetapi tidak benar-benar bekerja.

Saran dipersilahkan!

beta <- runif(5)
x <- matrix(rnorm(500), nc=5)
y <- drop(x %*% beta)
dat <- data.frame(y=y, x1=x[,1], x2=x[,2], x3=x[,3], x4=x[,4], x5=x[,5])
model1 <- lm(y~., data=dat)
model2 <- randomForest(y ~., data=dat)
pred1 <- predict(model1 ,dat)
pred2 <- predict(model2 ,dat)
plot(y, pred1)
points(y, pred2, col="blue")

masukkan deskripsi gambar di sini


Saya setuju dengan pengamatan Anda, tetapi saya telah menjadi penggemar regresi RF terhadap rata-rata di daerah dengan beberapa titik data. Nah, jika seseorang sangat yakin untuk menemukan struktur linier keseluruhan yang bagus sampai ke garis batas set pelatihan yang hanya didukung oleh beberapa titik data, maka cukup buat koreksi linier dan minta RF mengurus residu.
Soren Havelund Welling

2
Terima kasih atas komentarnya! Saya memiliki pengalaman buruk di mana itu memberikan prediksi yang sangat buruk dan yang membuat saya terlihat buruk. Tapi mungkin tidak ada cara untuk mendapatkan prediksi yang lebih akurat untuk titik batas tanpa meningkatkan varians.
Flounderer

Komentar tambahan bertahun-tahun kemudian, saya perhatikan bahwa RF cenderung berkinerja buruk di mana pun ada sedikit kesenjangan dalam data. Tentu saja, seringkali ada lebih sedikit data pada ekstrem dari kumpulan data, tetapi setiap sesekali Anda mungkin berakhir dengan celah tepat di tengah. RF dapat membuat kekacauan tepat pada dataset dengan celah di dalamnya.
SeldomSeenSlim

2

Hutan acak mencoba menemukan lokasi di antara banyak fitur dan banyak titik data. Ini membagi fitur dan memberikannya ke pohon yang berbeda, karena Anda memiliki jumlah fitur yang rendah, hasil keseluruhan tidak sebagus regresi logistik. Hutan acak dapat menangani variabel numerik dan kategorikal tetapi tidak pandai menangani nilai yang hilang.


0

Saya berpikir bahwa Random Forest (RF) adalah alat yang baik ketika bentuk fungsional dari hubungan antara Xs dan y rumit (karena hubungan nonlinear dan efek interaksi). RF mengategorikan Xs berdasarkan cutpoint terbaik (dalam hal SSE minimum) dan tidak menerapkan informasi peneliti tentang bentuk fungsional hubungan. Di sisi lain, regresi OLS menggunakan informasi ini. Dalam contoh Anda, Anda tahu apa sebenarnya jenis hubungan antara Xs dan y dan menggunakan semua informasi ini dalam model regresi Anda tetapi RF tidak menggunakan informasi ini.


-2

Untuk dasar-dasar, Regresi melakukan lebih dari variabel kontinu dan Hutan Acak atas variabel diskrit.

Anda perlu memberikan detail lebih lanjut tentang masalah dan tentang sifat variabel agar lebih spesifik ...


Semua variabel pengembalian harian saham (seri waktu keuangan) ...
user28906

3
"Regresi berperforma baik atas variabel kontinu dan Hutan Acak atas variabel diskrit.": Ini tidak benar secara umum. Ada perbedaan dalam inferensi dan prediksi, dan bahkan dengan prediksi ada beberapa kasus ketika regresi lebih disukai daripada RF.
AdamO
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.