机器学习中的评价指标
混淆矩阵
混淆矩阵特别用于监督学习。混淆矩阵的每一行的总数代表了预测该类别的个数,每一列的总数表示为该类别的实际数据的数目。
TP、FP、FN、TN可以理解为:
TP:预测为1,实际为1,预测正确。
FP:预测为1,实际为0,预测错误。
FN:预测为0,实际为1,预测错误。
TN:预测为0,实际为0,预测正确。
准确率、精确率、召回率、F1值
- 准确率(Accuracy):预测正确的结果占总样本的百分比。
$$
\frac{TP + TN }{TP + FP + FN + TN}
$$
- 精确率(Precision):在被所有预测为正的样本中实际为正样本的概率。,意思就是在预测为正样本的结果中,我们有多少把握可以预测正确。
$$
\frac{TP}{TP + FP}
$$
- 召回率(Recall):在实际为正的样本中被预测为正样本的概率。
$$
\frac{TP}{TP + FN}
$$
精确率和召回率又被叫做查准率和查全率。
- F1分数
精确率和召回率无法做到双高。因此,选择合适的阈值点,就需要根据实际问题需求,比如我们想要很高的精确率,就要牺牲掉一些召回率。想要得到很高的召回率,就要牺牲掉一些精准率。但通常情况下,我们可以根据他们之间的平衡点,定义一个新的指标:F1分数(F1-Score)。F1分数同时考虑精确率和召回率,让两者同时达到最高,取得平衡。
$$
F1分数 = \frac{2精确率召回率}{精确率+召回率}
$$
F1分数的取值范围是0到1之间,值越接近1表示模型的性能越好。当Precision和Recall都很高时,F1分数也会很高。
灵敏度,特异度,真正率,假正率
- 灵敏度(Sensitivity):灵敏度和召回率是一模一样的,只是名字换了而已。
$$
\frac{TP}{TP + FN}
$$
- 特异度(Specificity):
$$
\frac{TN}{FP + TN}
$$
真正率(TPR):在实际为正的样本中被预测为正样本的概率。
$$
= 灵敏度 = TP/(TP+FN)
$$假正率(FPR):在实际为负的样本中被预测为正样本的概率。
$$
= 1- 特异度 = FP/(FP+TN)
$$
ROC曲线
ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。ROC曲线中的主要两个指标就是真正率和假正率, 上面也解释了这么选择的好处所在。其中横坐标为假正率(FPR),纵坐标为真正率(TPR),下面就是一个标准的ROC曲线图。
FPR表示模型虚报的响应程度,而TPR表示模型预测响应的覆盖程度。TPR越高,同时FPR越低(即ROC曲线越陡),那么模型的性能就越好。
AUC
曲线下面积(Area Under Curve)。AUC的一般判断标准
0.5 - 0.7: 效果较低,但用于预测股票已经很不错了
0.7 - 0.85: 效果一般
0.85 - 0.95: 效果很好
0.95 - 1: 效果非常好,但一般不太可能