menghitung ROC AUC dengan hutan acak

Saya menggunakan pengklasifikasi hutan acak dalam masalah multi kelas.

rf = RandomForestClassifier(()
rf.fit(train_X, train_y)

Dan kemudian untuk prediksi:

pred = rf.predict(test_X)

Jadi saya ingin menghitung roc_auc_score seperti ini:

roc_value = roc_auc_score(test_y, pred, average='weighted', 
    multi_class='ovr',labels=[0,1,2,3,4])

Tapi ini memberikan kesalahan:

numpy.AxisError: axis 1 is out of bounds for array of dimension 1

Bagaimana cara memperbaikinya?


person super_ask    schedule 15.03.2021    source sumber


Jawaban (1)


Jika Anda tertarik dengan ROC AUC, pred harus berupa probabilitas, bukan label prediksi. Dalam kasus Anda, ini adalah masalah klasifikasi multikelas, jadi pred harus berupa matriks dengan bentuk (n_samples, n_classes). Untuk mendapatkannya Anda hanya perlu menggunakan predict_proba bukan predict:

pred = rf.predict_proba(test_X)
person MaximeKan    schedule 15.03.2021