说,我正在建立一个ML模型,以预测患者是否患有流感。我知道,平均而言,每100名患者中就有2名患有流感。
通常,为了估算模型的准确性,我只需要计算模型正确标注的新数据百分比即可:
accuracy rate = (correctly identified patients / total number of patients)
但是在这种情况下,我可以编写一个模型,将所有患者都标记为没有流感,并且在98%的时间内准确无误。
因此,估算者可能不仅应考虑模型正确标记了多少患者,还应考虑其实际发现的患病患者的数量,例如
accuracy rate = (correctly identified patients / total number of patients) *
(correctly identified patients with flu / total number of patient with flu)
但是这个估算器没有现实世界的解释。
这是思考的正确方法,并且您将如何在这样的偏斜数据上计算模型的准确率?谢谢!
答案 0 :(得分:0)
我认为您必须使用MAP。为此,您需要计算召回率和精度:
召回率=(真阳性)/(真阳性+假阳性)
精度=(真正)/(真正+假负)
阳性:患者患有流感
阴性:患者没有流感
是:正确识别
错误:标识错误
答案 1 :(得分:0)
如果要建立平衡模型,长答案是“取决于”,您可以查看的短期答案是马修斯相关系数(MCC) / 发数值。
如您所见,当面对不平衡的数据集时,准确性是一个非常糟糕的指标。 MCC会考虑类的大小并对此进行更正。无论数据集的构成如何,对于相同的模型性能,它都能提供相同的结果。
MCC = (TP * TN - FP * FN) / sqrt((TP + FP)*(TP + FN)*(TN + FP)*(TN + FN))
仅凭经验(在我的领域中,因此需要大量盐):
与我合作的公司的合理模型通常始于MCC >= 0.75