我使用两个神经网络进行两类文本分类。我对测试数据的准确率达到了90%。还使用不同的性能指标,如精度,召回,f-score和混淆矩阵,以确保模型按预期执行。
在使用训练模型的预测实验中,我提取每个预测的概率。输出如下(无法提供它在Azure ML Studio中实现的代码)
例如: 类(概率),类2(概率) - >预测班级
1级(0.99),2级(0.01) - > 1级
1级(0.53),2级(0.47) - > 1级
1级(0.2),2级(0.8) - > 2级
根据我的理解,到目前为止,通过查看我们可以判断的概率,该模型对其预测的信心度如何。准确率达到90%意味着100条记录10条预测可能出错。
现在我的问题是,通过查看概率(置信度),我们可以判断当前记录中的哪个桶达到90%(正确预测)或10%(错误预测)?
我想要达到的目的是,告诉他/她这个预测可能是错误的,他们可能希望在使用这些结果之前将其更改为其他类。
答案 0 :(得分:1)
90%的准确度意味着100条记录10条预测可能出错。
这不完全是那样的;准确性始终(虽然含蓄地)链接到我们用来衡量它的特定测试集:因此,90%意味着在100个记录中我们的分类器确实错误分类10(即没有&#34 ;可以"。)
我们希望在机器学习中我们的模型在新的,看不见的数据中的性能将与我们的测试集(我们的模型的培训,也看不见)。粗略地说,只要我们的新数据来自我们的培训和相同的统计分布。测试集,这不是一个不合理的期望。
我想要达到的目的是,告诉他/她这个预测可能是错误的,他们可能希望在使用这些结果之前将其更改为其他类。
直观地说,你应该已经知道了答案:将返回的概率解释为置信度(至少在原则上,这不是无效的解释),它们的值告诉你一些关于如何"某些"你的模型是关于它的答案:那么,你能做的就是为最终用户提供这些概率值;在你的例子中,"问题"概率0.97确实在质量上与案例不一致"问题"概率为~0.50 ...