【发布时间】:2018-06-05 04:57:21
【问题描述】:
所以我正在使用 Scikit-Learn 处理三个结果数据框。我更感兴趣的是预测准确的概率,而不是预测正确的结果。因此我使用 predict_proba 而不是 predict,然后我可以输出每个测试实例 a、b 或 c 的所有概率,这是平滑的!
有没有办法像 accuracy_score(y_predictions, y_test) 一样做一个“概率分数”?这样我就能得到它赋予每个正确结果的平均概率?
我可以通过将其复制到 Excel 或类似文件来手动完成此操作,但这需要很多时间..
谢谢!
编辑 - 这是 predict_proba 的输出:
A B C
1 [ 0.6 0.3 0.1]
2 [ 0.4 0.1 0.5]
3 [ 0.4 0.3 0.3]
4 [ 0.3 0.1 0.6]
...
现在,假设实例 1 和 2 的结果是 A,实例 3 的结果是 C,实例 4 的结果是 B,这将使我的模型的“正确结果的平均概率”为 (0.6 + 0.4 + 0.3 + 0.1) / 实例数(在本例中为 4),即 0.35 或 35 %。
(当然)我将准确的结果存储在 y_test 中,因此我希望能够快速获得测试集中大约 500 个实例的正确结果的平均概率。
【问题讨论】:
-
您能否添加一个从
predict_proba获得的输出示例,以及您对“概率分数”的期望示例? -
完成!希望它足够清楚 =)
-
不知道你为什么要这样做?但是您是否尝试过 sklearn.metrics.log_loss。它惩罚错误的过度自信实例。
-
因为 A 和 C 的实际概率比 B 高很多,而我的模型的全部目的是最正确地预测概率,而不是实际结果。
标签: python pandas scikit-learn