如何解决用随机森林计算 ROC AUC
我在多类问题中使用随机森林分类器。
rf = RandomForestClassifier(()
rf.fit(train_X,train_y)
然后进行预测:
pred = rf.predict(test_X)
那么我想像这样计算roc_auc_score
:
roc_value = roc_auc_score(test_y,pred,average='weighted',multi_class='ovr',labels=[0,1,2,3,4])
但这会产生错误:
numpy.AxisError: axis 1 is out of bounds for array of dimension 1
我该如何解决这个问题?
解决方法
如果您对 ROC AUC 感兴趣,pred
需要是概率,而不是预测标签。在您的情况下,这是一个多类分类问题,因此 pred
需要是形状为 (n_samples,n_classes)
的矩阵。要获得它,您只需要使用 predict_proba
而不是 predict
:
pred = rf.predict_proba(test_X)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。