具体的训练集、验证集、测试集不做过多描述。
偏差:预计值的期望与真实值之间的差异。排除噪声的影响,偏差更多的是针对某个模型输出的样本误差,是模型无法准确表达数据关系导致的,比如模型过于简单,非线性的数据关系采用线性模型建模,偏差较大的模型是错的模型。
方差:预测值的离散程度,也就是离其期望值的距离。模型方差不是针对某一个模型输出样本进行判定,而是指多个(次)模型输出的结果之间的离散差异。这里说的多个模型或者多次模型,即不同模型或同一模型不同时间的输出结果方差较大。方差是由训练集的数据不够导致,一方面 数据样本数量不够,有限的数据集过度训练导致模型复杂;另一方面 数据样本质量不行,测试集中的数据分布未在训练集中,导致每次抽样训练模型时,每次模型参数不同,输出的结果都无法准确的预测出正确结果。
欠拟合是模型在训练集上误差过高,而过拟合模型则是在训练集上误差低,在测试集上误差高。实际上,模型在训练集上的误差来源,主要是来自于偏差;而在测试集上误差来源,主要是来自于方差。
| 训练集 | 测试集 | 偏差 | 方差 | |
|---|---|---|---|---|
| 欠拟合 | 70% | 69% | 30% | 1% |
| 过拟合 | 99% | 80% | 1% | 19% |
如上表所示, 如果一个模型在训练集上正确率为70%,测试集上正确率为
69%,则模型欠拟合。其中,30%的误差来自于偏差,1%的误差来自于方差;
如果一个模型在训练集上正确率为99%,测试集上正确率为80%,则模型过拟
合,其中1%的误差来自于偏差,19%的误差来自于方差。即 欠拟合是一种高偏差的情况;过拟合是一种低偏差,高方差的情况。

上图是一张比较常见的靶心图。 红色靶心表示为实际值,蓝色点集为预测值。在模型不断地训练迭代过程中,共有以下四种情况:
即欠拟合是由于模型过于简单,不能很好的拟合数据;过拟合是由于模型过于复杂,将训练集中的数据学的很好,但导致其泛化能力很差。
混淆矩阵 用于总结分类算法性能,如果每个类中的样本数量不等,或者数据集中有两个以上的类,则仅用分类准确率作为评判标准的话可能产生误导。计算混淆矩阵可以更好地了解分类模型的表现情况以及它所犯的错误的类型。
混淆矩阵的 每一列代表预测类别,每一列的总数量表示预测为该类别的数据的数目;每一行代表数据的真实类别,每一行的总数量示该类别的数据实例的数目。以二元真假分类未来,其混淆矩阵如下:
| 真 | 假 | |
|---|---|---|
| 真 | 真阳性数量 TP(True Postive) | 假阳性数量 FP(False Postive) |
| 假 | 假阴性数量 FN(False Negative) | 真阴性数量 TN(True Negative) |
其中,
即处在对角线上的记录做出了正确的分类,而其他位置则做出了误判。
即预测正确的样本数占据样本总数的比例,包括正例和反例。
准 确 率 ( A c c u r a c y ) = T P + T N T P + T N + F P + F N \displaystyle 准确率(Accuracy)=\frac{TP+TN}{TP+TN+FP+FN} 准确率(Accuracy)=TP+TN+FP+FNTP+TN
在预测结果中,预测为正的样本中有多少是真正的正样本。即精确率越高,那么模型预测为正的可信度就越高。
精 确 率 ( P r e c i s i o n ) = T P T P + F P \displaystyle 精确率(Precision)=\frac{TP}{TP+FP} 精确率(Precision)=TP+FPTP
召回率是针对样本而言,即样本中的正例有多少被预测正确了。预测的可能有两种,一种是把原本的正例预测成正例(TP),另一种是把原来的正例预测成反例(FN)。
召 回 率 ( R e c a l l ) = T P T P + F N \displaystyle 召回率(Recall)=\frac{TP}{TP+FN} 召回率(Recall)=TP+FNTP
精确率和召回率的区别就是分母不同:
F1-Score,又称为平衡F分数( Balanced Score),统计学中用来衡量二分类模型精确度的一种指标。它同时兼顾了分类模型的精确率和召回率。F1 分数可以看作是模型精确率和召回率的一种加权平均,它的最大值是1 ,最小值是0,公式如下:
F
1
=
2
∗
p
r
e
c
i
s
i
o
n
∗
r
e
c
a
l
l
p
r
e
c
i
s
i
o
n
+
r
e
c
a
l
l
\displaystyle F1=\frac{2*precision*recall}{precision+recall}
F1=precision+recall2∗precision∗recall
当recall越大时,预测的覆盖率越高,precision 反而会越小,反之亦然。当召回率和精确率一个大一个小时,F1-Score也会较小;只有当召回率和准确率都比较大时,F1-Score才会比较大。所以,通常使用F1-Score来调和精确率和召回率。
ROC曲线,全称Receiver Operating Characteristic 曲线,常用来评价二分类的优劣。它是描述 TPR (真正例率,True Positive Rate) 与 FPR (假正例率,False Positive Rate) 之间关系的曲线。ROC曲线的纵轴是 真正例率;横轴是 假正例率。
其中,
与精确率、召回率不同的是,当模型的TPR越高FPR也会越高,TPR越低FPR也会越低。这与精确率和召回率之间的关系刚好相反。而且,模型的分类阈值一但改变,就有产生一组对应的 TPR与FPR。

随着FPR的增大,TPR也会逐渐增大。
ROC曲线围成的面积我们称为AUC。AUC全称Area Under Curve,通常被定义为ROC曲线下的面积,取值范围在0.5到1之间。于ROC曲线在很多情况下不能直接说明哪个分类器更好,而AUC是一个数值,反映的ROC曲线的面积,AUC数值越大,对应的分类器越好。
以二分类(苹果和梨子)为例,分以下情况:
| 实际值\预测值 | 梨子 | 苹果 |
|---|---|---|
| 梨子 | 1 | 9 |
| 苹果 | 0 | 90 |
| 实际值\预测值 | 梨子 | 苹果 |
|---|---|---|
| 梨子 | 10 | 1 |
| 苹果 | 19 | 70 |
准确率用于整体评估模型的预测能力,但是由于训练样本的正负样本数量的差距过于明显,可能导致模型具有高准确率情况下对正样本检出能力过弱(recall低)或过强(precision低),因此需要通过召回率和精确率来具体评价模型的优异程度。