如何解决随机森林:预测 vs predict_proba
我正在研究一个多类、高度不平衡的分类问题。我使用随机森林作为基础分类器。
考虑到多个标准(指标:precision,recall conf_matrix,roc_auc
),我必须在评估集上提供模型性能报告。
火车模型:
rf = RandomForestClassifier(()
rf.fit(train_X,train_y)
为了获得精确率/召回率和混淆矩阵,我喜欢:
pred = rf.predict(test_X)
precision = metrics.precision_score(y_test,pred)
recall = metrics.recall_score(y_test,pred)
f1_score = metrics.f1_score(y_test,pred)
confusion_matrix = metrics.confusion_matrix(y_test,pred)
很好,但是计算 roc_auc
需要类的预测概率而不是类标签。为此,我必须进一步这样做:
y_prob = rf.predict_proba(test_X)
roc_auc = metrics.roc_auc_score(y_test,y_prob)
但是我在这里担心 rf.predict()
首先产生的结果可能与 rf.predict_proba()
不一致,因此我报告的 roc_auc
分数。我知道多次调用 predict
会产生完全相同的结果,但我担心 predict
那么 predict_proba
可能会产生略有不同的结果,因此不适合与上述指标一起讨论.
如果是这种情况,是否有办法控制这一点,确保 predict()
用于确定预测标签的类概率在我调用 predict_proab
时完全相同?
解决方法
predict_proba()
和 predict()
彼此一致。事实上,predict
在内部使用 predict_proba
,可以看出here in the source code
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。