Distribusi normal dan Random Forest
Saya memiliki tabel besar dalam kerangka data (baris 600k) yang memiliki kolom y (variabel yang ingin saya prediksi) dan 4 kolom lainnya yang merupakan X. Saya telah menjalankan regressor RF dan saya mendapat inti 0,87 ketika saya menjalankannya di melatih dan menguji.
Namun, ketika saya mencoba memprediksi kumpulan data lain (yang sangat mirip, dengan 1 juta baris) saya mendapat skor 0,65. Jadi saya berasumsi itu terlalu pas. ketika saya mencoba memahami mengapa itu terjadi, saya kembali ke distribusi kolom y, yang terlihat seperti ini:
pertanyaan saya adalah, mungkinkah karena data saya tidak memiliki distribusi normal (atau sangat miring ...) dalm model saya buruk? Apakah semua variabel harus berdistribusi normal? bagaimana skor regresi hutan acak dihitung? nilai id 0.25 dan prediksi 0.26 apakah itu termasuk prediksi yang benar?
Jawaban
Jika Anda menggunakan algoritme berbasis pohon seperti hutan acak, distribusi data seharusnya tidak menjadi masalah. Algoritme linier lebih bergantung pada distribusi variabel Anda. Untuk memeriksa apakah Anda overfit dapat mencoba memprediksi data pelatihan Anda dan membandingkan hasilnya dengan data pengujian. Skornya tergantung pada metrik evaluasi Anda. Jika Anda menggunakan, scikit-learnAnda mendapatkan R ^ 2 sebagai metrik Anda.
Koefisien R ^ 2 didefinisikan sebagai (1 - u / v), di mana u adalah jumlah sisa kuadrat ((y_true - y_pred) ** 2) .sum () dan v adalah jumlah total kuadrat ((y_true - y_true.mean ()) ** 2) .sum ().