如何解决为什么随机森林分类器 .predict() 和 .predict_proba() 的预测不匹配?
我训练了一个简单的随机森林分类器,然后当我使用相同的测试输入测试预测时:
rf_clf.predict([[50,500,20,250000,1.5,110,2]])
rf_clf.predict_proba([[50,2]])
第一行返回 array([1.])
,而第二行返回 array([[0.14,0.86]])
,其中预测是第一个浮点数 0.14
对吗?
这两个怎么不匹配?我有点困惑。谢谢。
解决方法
predict()
函数返回特征所属的类,predict_proba()
函数返回特征属于不同输出类的概率。
示例:
predict()
函数的输出结果是该特征属于第 1 类(即)array([1.])
predict_proba()
函数的输出为您提供属于每个输出类数组的特征的概率([[0.14,0.86]])。特征属于第 0 类的概率为 14%,属于第 1 类的特征概率为 86%。
参考文档:predict()
docs、predict_proba()
docs
查看 sklearn.ensemble.RandomForestClassifier
的 documentation 部分,特别是 predict_proba
方法。
返回:形状的 ndarray (n_samples,n_classes),或 n_outputs 的列表。如果 n_outputs > 1,则为此类数组。输入样本的类别概率。类的顺序对应于属性classes_中的顺序。
您得到的输出 (array([[0.14,0.86]])) 因此是样本中存在的每个类的概率列表,对于每个样本输入。方法 predict()
只是为每个输入预测一个类(这就是为什么您将 array([1.]) 作为返回)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。