【问题标题】:How can I calculate the accuracy of each predicted value one by one in Python? [closed]如何在Python中一一计算每个预测值的准确性? [关闭]
【发布时间】:2021-08-03 07:51:17
【问题描述】:

我目前正在使用随机森林分类器研究疾病预测机器学习模型。我输入症状,然后程序应该预测疾病。预测没有问题,但我想“一个一个”地计算每个预测值的准确性。例如,该程序将“结核病”预测为一种疾病。然后,我想计算这个预测的准确率。 (只是预测值的准确度结核。)如何逐一计算每个预测值的准确度?

【问题讨论】:

  • 那么如果预测是“结核病”而实际疾病是“结核病”,那么这种情况下的准确度应该是多少?不是对就是错?从预测正面或反面的角度来考虑它。如果我在一次投掷中预测正面并且它正面,那么我的一次预测有多准确?我认为准确性是错误的衡量标准。也许您想知道预测有多确定——它选择“结核病”是因为它确定有 99% 和 51% 的机会吗?
  • @Mark 我想计算预测的准确率百分比。不只是对或错。我的意思是你有可能以 85% 的准确率患上肺结核。这可能吗?
  • 这可能对随机森林特别有用:stackoverflow.com/questions/30814231/…
  • 您希望如何一一获得准确性?对于每个预测,它将是 0 或 1。您不妨创建一个混淆矩阵,其中将列出您的所有预测以及它们的分类程度。

标签: python machine-learning


【解决方案1】:

在随机森林的情况下,这可能会很困难。随机森林分类器将特征空间划分为区域,然后根据点所在的位置分配值。显然,0-size 的点不可能在一个区域为 60%,在另一个区域为 40%,因此,疾病的预测标签只能是“结核病”或“无结核病”。

另一方面,其他方法在这方面提供了更多选择。例如,二元神经网络分类器将有两个输出神经元(每个类别一个),并且对于每个预测,标签将来自具有更高权重的神经元。但是您实际上可以报告输出神经元的权重以及基于这些的预测的置信度。在这张图片中,有 3 个输出类,但你明白了 - 在这里你可以说记录属于第二类的概率为 60%,属于第三类的概率为 30%,属于第一类的概率为 10%类:

最后,另一种方法是逻辑回归,其中预测是 logit 的值,本质上是属于阳性类别的点的概率,在您的情况下将是一个人患有肺结核的概率。

【讨论】:

    猜你喜欢
    • 2012-07-10
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多