sklearn随机森林模型同时获得label和probability
sklearn随机森林训练好的模型(RandomForestClassifier)有两个预测函数,predict和predict_proba。
假设我们的数据集有6个类别,A-F。
predict函数会返回预测的label,如:
1 | array(['E', 'F', 'B', ..., 'C', 'C', 'C'], dtype=object) |
predict_proba函数返回的是各个类别的概率,每行是一个6列的列表,如:
1 | array( |
那么究竟应该如何同时获得label和probability呢?线上真正使用的时候可能需要结合使用。一个可行的思路是调用predict_proba获得各个label的概率,然后得到最大概率label的index,最后再将这个index映射为具体的label就可以了。通过查看文档可见具体的类别信息存储在一个叫做”class_”的字段中了:
classes_: ndarray of shape (n_classes,) or a list of such arrays
The classes labels (single output problem), or a list of arrays of class labels (multi-output problem).
核心代码片断如下:
1 | classes = model.classes_ |
结果如下:
E 0.8541204157531124
F 0.9724013207285382
B 0.5046077566187441
B 0.5745286467331606
E 0.713419214014316
A 0.6133339121442233
F 0.9724013207285382
C 0.8217302482178279
评论系统未开启,无法评论!