Apakah pakaian acak Forest?


24

Saya telah membaca tentang Hutan Acak tetapi saya tidak dapat menemukan jawaban pasti tentang masalah overfitting. Menurut kertas asli Breiman, mereka tidak boleh berpakaian berlebihan ketika menambah jumlah pohon di hutan, tetapi tampaknya tidak ada konsensus mengenai hal ini. Ini membuat saya agak bingung tentang masalah ini.

Mungkin seseorang yang lebih ahli daripada saya dapat memberikan saya jawaban yang lebih konkret atau mengarahkan saya ke arah yang benar untuk lebih memahami masalahnya.


3
Semua algoritma akan disesuaikan sampai batas tertentu. Ini bukan tentang memilih sesuatu yang tidak terlalu pantas, ini tentang dengan hati-hati mempertimbangkan jumlah overfitting dan bentuk masalah yang Anda selesaikan untuk memaksimalkan metrik yang lebih relevan.
indico

1
ISTR bahwa Breiman memiliki bukti berdasarkan Hukum Bilangan Besar. Adakah yang menemukan cacat dalam bukti itu?
JenSCDC

Jawaban:


22

Setiap algoritma ML dengan kompleksitas tinggi dapat disesuaikan. Namun, OP bertanya apakah RF tidak akan overfit ketika menambah jumlah pohon di hutan.

Secara umum, metode ensemble mengurangi varians prediksi menjadi hampir tidak ada, meningkatkan akurasi ensemble. Jika kita mendefinisikan varian kesalahan generalisasi yang diharapkan dari model acak individu sebagai:

Dari sini , varian dari kesalahan generalisasi yang diharapkan dari sebuah ensemble berhubungan dengan:

di mana p(x)koefisien korelasi Pearson antara prediksi dua model acak dilatih pada data yang sama dari dua biji independen. Jika kita meningkatkan jumlah DT dalam RF, lebih besar M, varian ensemble berkurang ketika ρ(x)<1. Oleh karena itu, varians ansambel secara ketat lebih kecil daripada varians model individual.

Singkatnya, meningkatkan jumlah model acak individu dalam ansambel tidak akan pernah meningkatkan kesalahan generalisasi.


1
Itulah yang dikatakan oleh Leo Breiman dan teorinya, tetapi secara empiris sepertinya mereka benar-benar berpakaian berlebihan. Misalnya saya saat ini memiliki model dengan CVE MSE 10 kali lipat 0,02 tetapi ketika diukur terhadap kebenaran dasar, CV MSE adalah 0,4. OTOH jika saya mengurangi kedalaman pohon dan jumlah pohon kinerja model meningkat secara signifikan.
Hack-R

4
Jika Anda mengurangi kedalaman pohon adalah kasus yang berbeda karena Anda menambahkan regularisasi, yang akan mengurangi overfitting. Cobalah untuk merencanakan MSE ketika Anda menambah jumlah pohon sambil menjaga sisa parameter tidak berubah. Jadi, Anda memiliki MSE di sumbu y dan num_tress di sumbu x. Anda akan melihat bahwa ketika menambahkan lebih banyak pohon, kesalahan berkurang dengan cepat, dan kemudian memiliki dataran tinggi; tapi itu tidak akan pernah meningkat.
tashuhka

9

Anda mungkin ingin memeriksa validasi silang - situs web stachexchange untuk banyak hal, termasuk pembelajaran mesin.

Secara khusus, pertanyaan ini (dengan judul yang persis sama) telah dijawab beberapa kali. Periksa tautan ini: /stats//search?q=random+forest+overfit

Tapi saya dapat memberikan jawaban singkat untuk itu: ya, itu benar-benar cocok, dan kadang-kadang Anda perlu mengontrol kompleksitas pohon di hutan Anda, atau bahkan memangkas ketika mereka tumbuh terlalu banyak - tetapi ini tergantung pada perpustakaan yang Anda gunakan untuk membangun hutan. Misal di randomForestdalam R Anda hanya dapat mengontrol kompleksitas


3
  1. Hutan Acak tidak berpakaian.
  2. Hutan Acak tidak meningkatkan kesalahan generalisasi ketika lebih banyak pohon ditambahkan ke model. Varians generalisasi akan menjadi nol dengan lebih banyak pohon yang digunakan.

Saya telah membuat percobaan yang sangat sederhana. Saya telah menghasilkan data sintetis:

y = 10 * x + noise

Saya sudah melatih dua model Hutan Acak:

  • satu dengan pohon penuh
  • satu dengan pohon dipangkas

Model dengan pohon penuh memiliki kesalahan kereta lebih rendah tetapi kesalahan uji lebih tinggi daripada model dengan pohon dipangkas. Tanggapan kedua model:

tanggapan

Ini bukti nyata overfitting. Kemudian saya mengambil parameter-hyper dari model overfitted dan memeriksa kesalahan sambil menambahkan pada setiap langkah 1 pohon. Saya mendapat plot berikut:

menanam pohon

Seperti yang Anda lihat kesalahan pakaian tidak berubah saat menambahkan lebih banyak pohon tetapi modelnya dilengkapi. Ini tautan untuk percobaan yang saya buat.


1

DATASET TERSTRUKTUR -> MISLEADING KESALAHAN OOB

Saya menemukan kasus RF overfitting yang menarik dalam praktik kerja saya. Ketika data terstruktur, RF overfits pada pengamatan OOB.

Detail:

Saya mencoba memprediksi harga listrik di pasar spot listrik untuk setiap jam tunggal (setiap baris dataset berisi parameter harga dan sistem (beban, kapasitas, dll.) Untuk satu jam itu).
Harga listrik dibuat dalam batch (harga 24 dibuat di pasar listrik dalam satu perbaikan dalam satu saat waktu).
Jadi OOB obs untuk setiap pohon adalah himpunan bagian acak dari set jam, tetapi jika Anda memprediksi 24 jam berikutnya Anda melakukannya sekaligus (pada saat pertama Anda mendapatkan semua parameter sistem, maka Anda memperkirakan 24 harga, maka ada perbaikan yang menghasilkan harga tersebut), jadi lebih mudah untuk membuat prediksi OOB, kemudian untuk seluruh hari berikutnya. OOB obs tidak terkandung dalam blok 24 jam, tetapi tersebar secara seragam, karena ada autokorelasi kesalahan prediksi, lebih mudah untuk memperkirakan harga untuk satu jam yang hilang kemudian untuk seluruh blok jam yang hilang.

lebih mudah untuk memprediksi dalam kasus autokorelasi kesalahan:
diketahui, diketahui, prediksi, diketahui, prediksi - kasus OBB
lebih sulit:
dikenal, dikenal, diketahui, prediksi, prediksi - prediksi dunia nyata

Saya harap ini menarik

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.