Apa ukuran kesalahan pelatihan untuk dilaporkan untuk Hutan Acak?

15

Saat ini saya memasang hutan acak untuk masalah klasifikasi menggunakan randomForestpaket dalam R, dan saya tidak yakin tentang cara melaporkan kesalahan pelatihan untuk model ini.

Kesalahan pelatihan saya mendekati 0% ketika saya menghitungnya menggunakan prediksi yang saya dapatkan dengan perintah:

predict(model, data=X_train)

di mana X_traindata pelatihan.

Dalam jawaban untuk pertanyaan terkait , saya membaca bahwa seseorang harus menggunakan kesalahan pelatihan out-of-bag (OOB) sebagai metrik kesalahan pelatihan untuk hutan acak. Kuantitas ini dihitung dari prediksi yang diperoleh dengan perintah:

predict(model)

Dalam hal ini, kesalahan pelatihan OOB jauh lebih dekat dengan kesalahan tes 10-CV rata-rata, yaitu 11%.

Saya bertanya-tanya:

  1. Apakah diterima secara umum untuk melaporkan kesalahan pelatihan OOB sebagai ukuran kesalahan pelatihan untuk hutan acak?

  2. Benarkah ukuran tradisional kesalahan pelatihan secara artifisial rendah?

  3. Jika ukuran tradisional kesalahan pelatihan secara artifisial rendah, maka dua tindakan apa yang dapat saya bandingkan untuk mengecek apakah RF terlalu cocok?

Berk U.
sumber

Jawaban:

10

Untuk menambah jawaban @Soren H. Welling.

1. Apakah diterima secara umum untuk melaporkan kesalahan pelatihan OOB sebagai ukuran kesalahan pelatihan untuk hutan acak?

Tidak. Kesalahan OOB pada model yang dilatih tidak sama dengan kesalahan pelatihan. Namun, ini dapat berfungsi sebagai ukuran akurasi prediksi.

2. Benarkah ukuran tradisional kesalahan pelatihan secara artifisial rendah?

Ini benar jika kita menjalankan masalah klasifikasi menggunakan pengaturan default. Proses yang tepat dijelaskan dalam posting forum oleh Andy Liaw , yang mengelola randomForestpaket dalam R, sebagai berikut:

Untuk sebagian besar, kinerja pada set pelatihan tidak ada artinya. (Itulah yang terjadi pada sebagian besar algoritma, tetapi terutama untuk RF.) Pada pengaturan default (dan yang disarankan), pohon ditanam ke ukuran maksimum, yang berarti kemungkinan besar hanya ada satu titik data di sebagian besar terminal node, dan prediksi pada terminal node ditentukan oleh kelas mayoritas dalam node, atau titik data tunggal. Misalkan terjadi setiap saat; yaitu, di semua pohon semua terminal node hanya memiliki satu titik data. Titik data tertentu akan menjadi "kantong" di sekitar 64% dari pohon di hutan, dan setiap pohon memiliki prediksi yang benar untuk titik data tersebut. Bahkan jika semua pohon di mana titik data di luar kantong memberikan prediksi yang salah, dengan suara mayoritas dari semua pohon, Anda masih mendapatkan jawaban yang benar pada akhirnya. Jadi pada dasarnya prediksi sempurna pada set kereta untuk RF adalah "dengan desain".

nodesize > 1sampsize < 0.5N(xsaya,ysaya)

3. Jika ukuran tradisional kesalahan pelatihan secara artifisial rendah, maka dua tindakan apa yang dapat saya bandingkan untuk mengecek apakah RF terlalu cocok?

Jika kita menjalankan RF dengan nodesize = 1dan sampsize > 0.5, maka kesalahan pelatihan RF akan selalu mendekati 0. Dalam hal ini, satu-satunya cara untuk mengetahui apakah model overfitting adalah dengan menyimpan beberapa data sebagai set validasi independen. Kami kemudian dapat membandingkan 10-CV test error (atau OOB test error) dengan kesalahan pada set validasi independen. Jika kesalahan tes 10-CV jauh lebih rendah daripada kesalahan pada set validasi independen, maka model mungkin overfitting.

Berk U.
sumber
2

[diedit 21.7.15 8:31 CEST]

Saya kira Anda menggunakan RF untuk klasifikasi. Karena dalam kasus ini, algoritma menghasilkan pohon-pohon dewasa dengan node terminal murni hanya satu kelas target.

predict(model, data=X_train)

Baris pengkodean ini seperti anjing yang mengejar [~ 66% dari] ekornya sendiri. Prediksi sampel pelatihan adalah kelas sampel pelatihan itu sendiri. Untuk regresi, RF berhenti jika simpul memiliki 5 atau kurang sampel di dalamnya atau jika simpul murni. Di sini kesalahan prediksi akan kecil tetapi tidak 0%.

Dalam pembelajaran mesin kita sering bekerja dengan ruang hipotesis besar. Ini berarti akan selalu ada banyak hipotesis / penjelasan / model yang belum dipalsukan terhadap struktur data dari rangkaian pelatihan kami. Dalam statistik klasik adalah ruang hipotesis seringkali kecil dan oleh karena itu model-fit langsung informatif sesuai dengan beberapa teori probabilitas yang diasumsikan. Dalam pembelajaran mesin apakah kekurangan langsung berhubungan dengan bias model. Bias adalah "tidak fleksibel" dari model. Itu tidakdengan cara apa pun memberikan perkiraan kekuatan generalisasi (kemampuan untuk memprediksi peristiwa baru). Untuk model algoritmik, validasi silang adalah alat terbaik untuk memperkirakan kekuatan generalisasi, karena tidak ada teori yang dirumuskan. Namun, jika asumsi model pengambilan sampel independen gagal, model tersebut mungkin tidak berguna bagaimanapun, bahkan ketika validasi silang yang dilakukan dengan baik menyarankan sebaliknya. Pada akhirnya, bukti terkuat adalah dengan memuaskan memprediksi sejumlah set tes eksternal dari berbagai sumber.

Kembali ke CV: Out-of-bag sering merupakan jenis CV yang diterima. Saya pribadi berpendapat bahwa OOB-CV memberikan hasil yang sama dengan 5-lipat-CV, tetapi ini adalah gangguan yang sangat kecil. Jika membandingkan katakanlah RF ke SVM, maka OOB-CV tidak berguna karena kita biasanya menghindari tas SVM. Sebaliknya, baik SVM dan RF akan tertanam dalam skema validasi silang yang sama persis misalnya 10 kali lipat 10 kali dengan partisi yang cocok untuk setiap pengulangan. Setiap langkah rekayasa fitur seringkali juga diperlukan untuk divalidasi silang. Jika untuk menjaga semuanya tetap bersih, seluruh jalur pipa data dapat disematkan di CV.

Jika Anda menyetel model Anda dengan set-tes Anda (atau validasi silang) Anda kembali menggembungkan ruang hipotesis Anda dan kinerja prediksi yang divalidasi cenderung terlalu optimis. Sebagai gantinya Anda akan memerlukan set kalibrasi (atau loop-kalibrasi CV) untuk menyesuaikan dan set validasi uji (atau loop-validasi CV) untuk menilai model optimal akhir Anda.

Dalam arti ekstrem, skor validasi Anda hanya akan tidak bias jika Anda tidak pernah bertindak atas hasil ini, ketika Anda melihatnya. Ini adalah paradoks validasi, karena mengapa kita memperoleh pengetahuan yang hanya benar jika Anda tidak menindaklanjutinya. Dalam praktiknya, masyarakat dengan sukarela menerima beberapa bias publikasi, di mana para peneliti yang mendapat validasi terlalu optimis secara acak lebih mungkin untuk menerbitkan, daripada mereka yang sayangnya memiliki validasi over-pesimistis yang baik. Karena itu kadang-kadang mengapa tidak dapat mereproduksi model lain.

Soren Havelund Welling
sumber
Terima kasih untuk ini. Dua pertanyaan: (1) Bagaimana prediksi sampel pelatihan, kelas sampel pelatihan itu sendiri? Harus ada pohon yang tidak menggunakan sampel pelatihan yang digunakan dalam prosedur pemungutan suara mayoritas tidak? (2) Jadi, bagaimana Anda menilai jika pengukuran RF berlebihan?
Berk U.
(1) baik ya saya agak cepat di sana, saya edit jawabannya. Setiap sampel akan dimasukkan dalam ~ 66% dari pohon. Jika sampel dalam pohon dimasukkan dalam tas selama pelatihan, sampel tersebut akan berakhir di simpul yang sama selama prediksi di ~ 66%, dan itu sudah cukup untuk memenangkan suara terbanyak setiap saat. Konfirmasikan ini dengan menurunkan sampsize ke misalnya 30% sampel kereta, dan perhatikan kenaikan dari kesalahan klasifikasi 0%. (2) Saya pikir saya menjawabnya. RF tidak sesuai dengan kebutuhan, tetapi Anda dapat membuat konteks selama mis. Menyetel di mana Anda akan mendapatkan hasil OOB-CV yang terlalu optimis. Sematkan seluruh proses Anda dalam CV baru untuk mengetahui dengan pasti.
Soren Havelund Welling