如何解释机器学习分类算法中的得分概率?

Posted

技术标签:

【中文标题】如何解释机器学习分类算法中的得分概率?【英文标题】:How to interpret scored probabilities in machine learning classification algorithm? 【发布时间】:2018-05-03 10:23:19 【问题描述】:

我正在使用两个神经网络进行两类文本分类。我在测试数据上获得了 90% 的准确率。还使用不同的性能指标,如准确率、召回率、f 分数和混淆矩阵,以确保模型按预期执行。

在使用训练模型的预测实验中,我正在获取每个预测的概率。输出如下所示(无法提供在 Azure ML Studio 中实现的代码)

例如: class (probability) , class 2 (probability) -> 预测类

1 级 (0.99),2 级 (0.01) -> 1 级

1 级 (0.53) ,2 级 (0.47) -> 1 级

1 级 (0.2) ,2 级(0.8) -> 2 级

Example

根据我目前的理解,通过查看我们可以判断的概率,模型对其预测的信心有多大。90% 的准确度意味着 100 条记录中 10 条预测可能出错。

现在我的问题是,通过查看概率(置信度),我们能否判断当前记录属于 90%(正确预测)或 10%(错误预测)的哪个桶?

我想要实现的是,为了告诉他/她这个预测可能是错误的,他们可能想在使用这些结果之前将其更改为其他类。

【问题讨论】:

我建议您考虑 ROC 分数作为准确度指标。这将使您知道您的预测有多好。 嗨 Tushar,感谢您的回复...我正在检查不同的性能指标,例如精度、召回率、f 分数和混淆矩阵,以确保模型按预期执行。然后使用经过训练的模型进行预测。在预测时,它为每个类分配一个概率,并输出概率最大的类。对不起,如果我的问题在上面不清楚。我的问题是,我们能否通过查看概率分数来判断预测是错误的还是正确的? 【参考方案1】:

90% 的准确率意味着 100 条记录中 10 条预测可能出错。

不完全一样;准确率总是(尽管隐含地)与我们用来测量它的特定测试集相关联:因此,90% 意味着在 100 条记录中,我们的分类器确实错误分类了 10 条(即没有“可能” )。

我们在机器学习中希望的是,我们的模型在新的、看不见的数据中的性能将与我们的测试集相媲美(关于我们模型的训练,它是也看不见)。粗略地说,只要我们的新数据来自与我们的训练和测试集相同的统计分布,这并不是一个不合理的期望。

我想要实现的是,为了告诉他/她这个预测可能是错误的,他们可能想在使用这些结果之前将其更改为其他类。

直观地说,您应该已经知道答案:将返回的概率解释为置信度(至少在原则上,这不是无效的解释),它们的值告诉您您的模型对其模型的“确定性”程度。答案:所以,您可以为最终用户提供这些概率值;在您的示例中,概率为 0.97 的“问题”的情况与概率约为 0.50 的“问题”的情况在质量上确实不同......

【讨论】:

感谢您的解释,在某些情况下,我通过手动检查观察到概率为 0.97 的“问题”是错误的预测(“实际上是问题”),而“问题”的概率为~0.50 的概率是正确的预测。在这种情况下,最终用户如何通过查看概率来采取行动? 不能;您应该接受这是一个错误分类的风险,或者尝试一个更好的模型......(如果答案有帮助,请接受它;答案占用了受访者宝贵的时间 - 谢谢)

以上是关于如何解释机器学习分类算法中的得分概率?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习算法--贝叶斯分类器

机器学习实战之朴素贝叶斯

机器学习中分类算法之朴素贝叶斯分类

机器学习算法--朴素贝叶斯

斯坦福机器学习课程笔记

机器学习算法原理与编程实践之朴素贝叶斯分类