Saya menjalankan analisis tentang kemungkinan gagal bayar pinjaman menggunakan regresi logistik dan hutan acak.
Ketika saya menggunakan regresi logistik, prediksi selalu semua '1' (yang berarti pinjaman baik). Saya belum pernah melihat ini sebelumnya, dan tidak tahu harus mulai dari mana dalam hal memilah masalah. Ada 22 kolom dengan 600 ribu baris. Ketika saya mengurangi # kolom saya mendapatkan hasil yang sama dengan regresi logistik.
Mengapa regresi logistik bisa salah?
**Actual from the data**
0 : 41932
1 : 573426
**Logistic regression output**
prediction for 1 when actually 0: 41932
prediction for 1 when actually 1:573426
A**s you can see, it always predicts a 1**
**Random forests does better:**
actual 0, pred 0 : 38800
actual 1, pred 0 : 27
actual 0, pred 1 : 3132
actual 1, pred 1 : 573399
predict
sklearn pada model probabilitas, itu tidak berguna. SELALU digunakanpredict_proba
.Jawaban:
Ya, masuk akal jika model Anda selalu memprediksi 1. Lihat kumpulan data Anda: sangat tidak seimbang untuk kelas positif Anda. Kelas negatif hanya membuat ~ 7% dari data Anda. Cobalah menyeimbangkan set pelatihan Anda atau gunakan algoritma yang sensitif biaya.
sumber
Jawaban singkatnya adalah bahwa regresi logistik adalah untuk memperkirakan probabilitas , tidak lebih atau kurang. Anda dapat memperkirakan probabilitas tidak peduli seberapa tidak seimbangnyaY adalah. Kurva ROC dan beberapa tindakan lain yang diberikan dalam diskusi tidak membantu. Jika Anda perlu mengambil keputusan atau mengambil tindakan, Anda menerapkan fungsi kerugian / utilitas / biaya pada risiko yang diprediksi dan memilih tindakan yang mengoptimalkan utilitas yang diharapkan. Tampaknya banyak pengguna pembelajaran mesin tidak benar-benar memahami risiko dan keputusan optimal.
sumber
Ketika Anda mengklasifikasikan menggunakan logit, inilah yang terjadi.
Logit memprediksi probabilitas default (PD) dari pinjaman, yang merupakan angka antara 0 dan 1. Selanjutnya, Anda menetapkan ambang D, sehingga Anda menandai pinjaman ke default jika PD> D, dan menandainya sebagai non- default jika PD
Secara alami, dalam populasi pinjaman khas PD << 1. Jadi, dalam kasus Anda 7% adalah probabilitas yang cukup tinggi untuk data satu tahun (PD biasanya dilaporkan setiap tahun). Jika ini adalah data multi-tahun, maka kita berbicara tentang apa yang disebut PD kumulatif, dalam hal ini cumPD = 7% bukan angka yang tinggi untuk data 10 tahun, misalnya. Oleh karena itu, berdasarkan standar apa pun, saya tidak akan mengatakan bahwa kumpulan data Anda bermasalah. Saya akan menggambarkannya setidaknya khas untuk data standar pinjaman, jika tidak besar (dalam arti bahwa Anda memiliki sejumlah besar standar relatif).
Sekarang, anggaplah model Anda memprediksi tiga level PD berikut:
Misalkan juga default aktual untuk grup ini adalah:
Sekarang Anda dapat mengatur D ke nilai yang berbeda dan melihat bagaimana perubahan matriks. Mari kita gunakan D = 0,4 pertama:
Jika Anda menetapkan D = 0,6:
Jika Anda menetapkan D = 0,99:
Kasus terakhir adalah apa yang Anda lihat dalam hasil model Anda. Dalam hal ini saya menekankan ambang D untuk classifier. Perubahan sederhana dalam D dapat meningkatkan karakteristik tertentu dari perkiraan Anda. Perhatikan, bahwa dalam ketiga kasus, PD yang diprediksi tetap sama, hanya ambang D yang berubah.
Mungkin juga bahwa regresi logit Anda jelek, tentu saja. Jadi, dalam hal ini Anda memiliki setidaknya dua variabel: spec logit dan ambang batas. Keduanya memengaruhi kekuatan perkiraan Anda.
sumber
Jika masalahnya memang ketidakseimbangan antara kelas, saya hanya akan mulai dengan menyeimbangkan bobot kelas:
Pengaturan parameter ini berarti bahwa hukuman untuk prediksi salah dalam fungsi kerugian akan ditimbang dengan proporsi terbalik dengan frekuensi kelas. Ini dapat memecahkan masalah yang Anda gambarkan.
sumber
Yah, tanpa informasi lebih lanjut sulit untuk mengatakan, tetapi dengan definisi regresi logistik Anda jenuh berdasarkan data yang dipasang. Jadi, dalam persamaan, istilah et-to adalah 0. Jadi tempat pertama untuk melihat adalah untuk melihat apa koefisien sebenarnya.
Ini juga bisa disebabkan oleh variabel yang tidak diskalakan dengan baik. Mungkin ada masalah di mana salah satu kolom sangat besar dalam nilai numerik dibandingkan dengan yang lain yang menyebabkannya berantakan.
sumber
Anda dapat menggunakan SMOTE untuk menyeimbangkan dataset yang tidak seimbang. Makalah yang bagus untuk referensi adalah:
Lifeng Zhou, Hong Wang, Prediksi Default Pinjaman pada Data Ketidakseimbangan Besar Menggunakan Hutan Acak, TELKOMNIKA Jurnal Teknik Elektro Indonesia, Vol.10, No.6, Oktober 2012, hlm. 1519 ~ 1525, tautan .
sumber