具体的训练集、验证集、测试集不做过多描述。
1 偏差和方差
1.1 偏差(bias)
偏差:预计值的期望与真实值之间的差异。排除噪声的影响,偏差更多的是针对某个模型输出的样本误差,是模型无法准确表达数据关系导致的,比如模型过于简单,非线性的数据关系采用线性模型建模,偏差较大的模型是错的模型。
1.2 方差(variance)
方差:预测值的离散程度,也就是离其期望值的距离。模型方差不是针对某一个模型输出样本进行判定,而是指多个(次)模型输出的结果之间的离散差异。这里说的多个模型或者多次模型,即不同模型或同一模型不同时间的输出结果方差较大。方差是由训练集的数据不够导致,一方面 数据样本数量不够,有限的数据集过度训练导致模型复杂;另一方面 数据样本质量不行,测试集中的数据分布未在训练集中,导致每次抽样训练模型时,每次模型参数不同,输出的结果都无法准确的预测出正确结果。
1.3 偏差、方差与欠拟合、过拟合
欠拟合是模型在训练集上误差过高,而过拟合模型则是在训练集上误差低,在测试集上误差高。实际上,模型在训练集上的误差来源,主要是来自于偏差;而在测试集上误差来源,主要是来自于方差。
训练集 | 测试集 | 偏差 | 方差 | |
---|---|---|---|---|
欠拟合 | 70% | 69% | 30% | 1% |
过拟合 | 99% | 80% | 1% | 19% |
如上表所示, 如果一个模型在训练集上正确率为70%,测试集上正确率为
69%,则模型欠拟合。其中,30%的误差来自于偏差,1%的误差来自于方差;
如果一个模型在训练集上正确率为99%,测试集上正确率为80%,则模型过拟
合,其中1%的误差来自于偏差,19%的误差来自于方差。即 欠拟合是一种高偏差的情况;过拟合是一种低偏差,高方差的情况。
1.4 实际训练中的偏差与方差
上图是一张比较常见的靶心图。 红色靶心表示为实际值,蓝色点集为预测值。在模型不断地训练迭代过程中,共有以下四种情况:
- 低偏差,低方差:这是训练的理想模型,此时蓝色点集基本落在靶心范围内,且数据离散程度小,基本在靶心范围内;
- 低偏差,高方差:这是深度学习面临的最大问题,过拟合了。也就是模型太贴合训练数据了,导致其泛化能力差,若遇到测试集,则准确度下降的厉害;
- 高偏差,低方差:这往往是训练的初始阶段;
- 高偏差,高方差:这是训练最糟糕的情况,准确度差,数据的离散程度也差。
即欠拟合是由于模型过于简单,不能很好的拟合数据;过拟合是由于模型过于复杂,将训练集中的数据学的很好,但导致其泛化能力很差。
2.模型的评价指标
2.1 分类器的评价指标
2.2.1 混淆矩阵(Confusion Matrix)
混淆矩阵 用于总结分类算法性能,如果每个类中的样本数量不等,或者数据集中有两个以上的类,则仅用分类准确率作为评判标准的话可能产生误导。计算混淆矩阵可以更好地了解分类模型的表现情况以及它所犯的错误的类型。
混淆矩阵的 每一列代表预测类别,每一列的总数量表示预测为该类别的数据的数目;每一行代表数据的真实类别,每一行的总数量示该类别的数据实例的数目。以二元真假分类未来,其混淆矩阵如下:
真 | 假 | |
---|---|---|
真 | 真阳性数量 TP(True Postive) | 假阳性数量 FP(False Postive) |
假 | 假阴性数量 FN(False Negative) | 真阴性数量 TN(True Negative) |
其中,
- 真阳性TP:将正例预测为正例;
- 假阴性FN:将反例预测为正例;
- 假阳性FP:将正例预测为反例;
- 真阴性TN:将反例预测为反例;
即处在对角线上的记录做出了正确的分类,而其他位置则做出了误判。
2.2.2 准确率(Accuracy)
即预测正确的样本数占据样本总数的比例,包括正例和反例。
准 确 率 ( 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
2.2.3 精确率(Precision)
在预测结果中,预测为正的样本中有多少是真正的正样本。即精确率越高,那么模型预测为正的可信度就越高。
精 确 率 ( P r e c i s i o n ) = T P T P + F P \displaystyle 精确率(Precision)=\frac{TP}{TP+FP} 精确率(Precision)=TP+FPTP
2.2.4 召回率(Recall)
召回率是针对样本而言,即样本中的正例有多少被预测正确了。预测的可能有两种,一种是把原本的正例预测成正例(TP),另一种是把原来的正例预测成反例(FN)。
召 回 率 ( R e c a l l ) = T P T P + F N \displaystyle 召回率(Recall)=\frac{TP}{TP+FN} 召回率(Recall)=TP+FNTP
精确率和召回率的区别就是分母不同:
- 精确率的分母是预测为正的样本数;
- 召回率的分母是样本中所有的正样本数。
2.2.5 F1-Score
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来调和精确率和召回率。
2.2.6 ROC曲线与AUC
ROC曲线,全称Receiver Operating Characteristic 曲线,常用来评价二分类的优劣。它是描述 TPR (真正例率,True Positive Rate) 与 FPR (假正例率,False Positive Rate) 之间关系的曲线。ROC曲线的纵轴是 真正例率;横轴是 假正例率。
其中,
- TPR (真正例率,True Positive Rate),指 正确预测为正例的样本占所有正例的比例。即 T P R = T P T P + F N \displaystyle TPR=\frac{TP}{TP+FN} TPR=TP+FNTP,对应于召回率
- FPR (假正例率,False Positive Rate),指 错误预测为正例的样本(本来为负例)占所有负例的比例。即 F P R = F P F P + T N \displaystyle FPR=\frac{FP}{FP+TN} FPR=FP+TNFP,可理解为某种错误率。
与精确率、召回率不同的是,当模型的TPR越高FPR也会越高,TPR越低FPR也会越低。这与精确率和召回率之间的关系刚好相反。而且,模型的分类阈值一但改变,就有产生一组对应的 TPR与FPR。
随着FPR的增大,TPR也会逐渐增大。
- 如果两条曲线没有相交,被包含的曲线性能较差;
- 如果曲线相交,则可以通过ROC曲线与横轴所围成的面积来判断模型的分类性能,曲线与横轴所围成的面积越大,模型的分类性能就越高。
ROC曲线围成的面积我们称为AUC。AUC全称Area Under Curve,通常被定义为ROC曲线下的面积,取值范围在0.5到1之间。于ROC曲线在很多情况下不能直接说明哪个分类器更好,而AUC是一个数值,反映的ROC曲线的面积,AUC数值越大,对应的分类器越好。
2.2.7 对准确率、召回率和精确率的理解
以二分类(苹果和梨子)为例,分以下情况:
- 若样本总数100个,其中苹果和梨子各占50个,其中分类正确的样本数为98个,则准确率为98%,是很高的;
- 若样本总数100个,其中苹果90个,梨子10个。若预测结果为99个苹果,则模型准确率为 91%,也很高。这是由于样本分布的不均匀,导致其对梨子的识别率几乎为0,此时则需要一个参数来衡量对梨子的识别能力,即 召回率。如下表所示,可得该模型的召回率为 0.1。
实际值\预测值 | 梨子 | 苹果 |
---|---|---|
梨子 | 1 | 9 |
苹果 | 0 | 90 |
- 当训练样本中梨子的比例很大,使得模型有更强的预测为梨子的倾向。即在测试集中,梨子基本预测正确,但苹果仍有很多被预测为梨子,这样也能保证较高的准确率。如下表所示,模型准确率仍为 80%,但是其 精确率 只有0.344,即其对梨子的预测能力过强,模型表现也不好。
实际值\预测值 | 梨子 | 苹果 |
---|---|---|
梨子 | 10 | 1 |
苹果 | 19 | 70 |
准确率用于整体评估模型的预测能力,但是由于训练样本的正负样本数量的差距过于明显,可能导致模型具有高准确率情况下对正样本检出能力过弱(recall低)或过强(precision低),因此需要通过召回率和精确率来具体评价模型的优异程度。