趋近智
开发完监督学习 (supervised learning)模型后,评估其性能是不可或缺的一步。仅仅训练模型是不够的;必须透彻地评估其预测结果,以了解其有效性并找出可改进之处。对于分类任务尤其如此,这类任务中模型将项目分配到预设类别。有多种指标可以量化 (quantization)分类器的表现。四种常用指标是:准确率、精确率、召回率和F1分数。这些指标从不同角度评估模型的正确性,并且都来源于一种称为混淆矩阵的结构。
对于任何分类问题,混淆矩阵是一个表格,它总结了分类算法的表现。这是一种直观的方式,可以查看有多少预测是正确的,以及模型犯了哪些类型的错误。对于二元分类问题(例如,分为正类和负类两种),混淆矩阵如下所示:
一个标准的2x2混淆矩阵,显示了二元分类的四种可能结果。
来解释一下这些术语:
理解这四种结果是掌握后续指标的根本。
准确率可能是最直观的表现衡量指标。它只是正确预测的实例数与总实例数之比。
准确率的公式是:
虽然准确率易于理解和计算,但它可能具有误导性,尤其是在处理不平衡数据集时。不平衡数据集指的是一个类别中的实例数量远高于其他类别的情况。
假设一个用于信用卡欺诈检测的数据集,其中99%的交易是合法的(负类),只有1%是欺诈性的(正类)。一个总是预测为“合法”的简单模型就能达到99%的准确率。虽然这听起来很高,但该模型对于欺诈检测毫无用处,因为它从未识别出任何欺诈性交易(它的真阳性将为零,所有实际欺诈都会成为假阴性)。在这种情况下,仅仅依赖准确率会让人对模型的表现产生错误认识。
精确率回答了这个问题:“在模型标记 (token)为正类的所有实例中,有多少是实际的正类?”它侧重于正类预测的正确性。
精确率的公式是:
高精确率意味着当模型预测一个实例为正类时,它很可能是正确的。当假阳性成本很高时,精确率显得尤为重要。
召回率,也称为敏感度或真阳性率(TPR),回答了这个问题:“在所有实际正类实例中,模型正确识别了多少?”它衡量模型找出所有相关正类实例的能力。
召回率的公式是:
高召回率意味着模型识别出大多数实际正类实例。当假阴性成本很高时,召回率显得尤为重要。
通常,精确率和召回率之间存在权衡。提高精确率有时会导致召回率下降,反之亦然。例如,如果你把垃圾邮件过滤器设置得非常严格(以提高精确率,确保只有真正的垃圾邮件才被标记 (token)为垃圾邮件),你最终会漏掉一些垃圾邮件(降低召回率)。相反,如果你将其设置得非常宽松(以提高召回率,捕获更多垃圾邮件),你可能会错误地将更多合法邮件标记为垃圾邮件(降低精确率)。具体的权衡取决于应用场景。
当你需要一个能够平衡精确率和召回率的单一指标时,F1分数是一个常用选择。它是精确率和召回率的调和平均值。调和平均值对较低的值给予更大的权重 (weight),这意味着只有当精确率和召回率都相对较高时,F1分数才会很高。
F1分数的公式是:
F1分数的范围从0到1,其中1是最佳可能得分。在处理不平衡类别时它特别有用,因为在这种情况下,它比准确率的误导性小。如果精确率或召回率非常低,F1分数也会很低。
在你学习本章内容并使用MLJ.jl实现模型时,你会发现该框架提供了便捷的方式来计算这些评估指标。MLJ.jl与StatisticalMeasures.jl包集成,提供了诸如accuracy、precision、recall和f1score(或fscore)等函数。你可以将这些函数应用于模型生成的预测结果和真实目标值,以评估表现。通常,这些指标与交叉验证等重采样策略结合使用,以估算模型在未见过数据上的表现。
对于所有问题,没有哪个指标是“最好”的。优先选择哪个指标在很大程度上取决于你的机器学习 (machine learning)应用的具体目标以及不同类型错误的后果。
理解这些指标使你能够从仅仅训练模型转变为审慎评估其表现,并就如何改进模型或为给定任务部署哪个模型做出明智的决定。随着你获得经验,你将形成更好的直觉,从而在Julia中的机器学习项目中选择和理解最合适的指标。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造