ambang klasifikasi dalam RandomForest-sklearn

9

1) Bagaimana saya bisa mengubah ambang klasifikasi (saya pikir itu adalah 0,5 secara default) di RandomForest di sklearn?

2) bagaimana saya bisa mengambil sampel dalam sklearn?

3) Saya mendapatkan hasil berikut dari pengelompokkan RandomForest: [[1635 1297] [520 3624]]

         precision    recall  f1-score   support

class 0       0.76      0.56      0.64      2932
class 1       0.74      0.87      0.80      4144

rata-rata / total 0,75 0,74 0,73 7076

pertama, data tidak seimbang (30% dari kelas-0 dan 70% dari kelas-1). Jadi, saya pikir classifier lebih cenderung bias untuk kelas-1 yang berarti memindahkan beberapa dari kelas-0 ke kelas-1 (ada 1297 kesalahan klasifikasi untuk kelas-0 tetapi 520 klasifikasi kesalahan untuk kelas-1). Bagaimana saya bisa memperbaikinya? apakah downsampling dapat membantu? atau mengubah ambang klasifikasi?

Pembaruan: kelas-0 memiliki 40% populasi sementara kelas-1 adalah 60%. Namun, pergeseran dari kelas-0 ke kelas-1 (1297) tinggi sementara saya ingin ini menjadi rendah.

Pencinta Data Besar
sumber

Jawaban:

7

Anda memang bisa membungkus Anda hutan acak di kelas yang predictmetode yang memanggil predict_probametode hutan acak internal dan kelas output 1 hanya jika lebih tinggi dari ambang batas kustom.

Atau Anda dapat melakukan bias algoritma pelatihan dengan memberikan sample_weightsampel yang lebih tinggi untuk dari kelas minoritas.

ogrisel
sumber
Terima kasih. Saya sedang berpikir tentang peningkatan berat badan untuk kelas minor. Namun, saya tidak dapat melihat apa pun di pengelompokkan RandomForest (ada di SGDclassifier)
Big Data Lover
Metode fit menerima sample_weightparam (satu bobot per parameter) yang sangat fleksibel dan memungkinkan untuk disimulasikan class_weight(satu berat per kelas target).
ogrisel
Terima kasih. ketika saya menggunakan clf = clf.fit (X, Y, sample_weight = preprocessing.balance_weights (y) itu memberi saya ValueError: operan tidak dapat disiarkan bersama dengan bentuk. y adalah biner 0/1
Big Data Lover
Apa bentuknya y? Mengapa Anda berbeda Ydan y?
ogrisel