机器学习问题中,通常需要建立模型来解决具体问题,但对于模型的好坏,也就是模型的泛化能力,如何进行评估呢?
这就需要定义一些评价指标,来度量模型的优劣。比如准确率(accuracy)、精确率(precision)、召回率(recall)、F1值(F1 score)等指标。而这些评价指标直接或间接都与混淆矩阵有关,那么混淆矩阵又是什么样的呢?
1. 混淆矩阵
其中:
- TP:预测为1,实际为1,预测正确。
- FP:预测为1,实际为0,预测错误。
- FN:预测为0,实际为1,预测错误。
- TN:预测为0,实际为0,预测正确。
2. 准确率
准确率(Accuracy):预测正确的结果占总样本的百分比,公式为:
虽然准确率能够判断总的正确率,但是在样本不均衡的情况下,并不能作为很好的指标来衡量结果。
3. 精确率
精确率(Precision):针对预测结果而言的,其含义是在被所有预测为正的样本中实际为正样本的概率,公式为:
精确率和准确率看上去有些类似,但是是两个完全不同的概念。精确率代表对正样本结果中的预测准确程度,准确率则代表整体的预测准确程度,包括正样本和负样本。
4. 召回率
召回率(Recall)是针对原样本而言的,其含义是在实际为正的样本中被预测为正样本的概率,公式为:
5. F1值
精确率和召回率又被叫做查准率和查全率,通常情况下,我们希望精确率和召回率都很高,但实际上是矛盾的,上述两个指标是矛盾体,无法做到双高。因此,选择合适的阈值点,就需要根据实际问题需求,比如我们想要很高的精确率,就要牺牲掉一些召回率。想要得到很高的召回率,就要牺牲掉一些精准率。
于是,我们可以根据他们之间的平衡点,定义一个新的指标:F1分数(F1-Score)。F1分数同时考虑精确率和召回率,让两者同时达到最高,取得平衡。F1分数表达式为: