一.经验误差与过拟合
1、错误率:
通常把分类错误的样本数占样本总数的比例称为错误率(Error rate)。
例如m个样本中有a个样本分类错误,则错误率E=a/m。相应的1-a/m 称为精度(accuracy),即精度=1-错误率。
2、误差:
1)我们把机器学习在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error);
2)而在新样本集的误差称为“泛化误差”(generalization error)。
显然我们要得到泛化误差小的学习器,然而很多情况下,我们并不能实现知道新样本是什么样的,实际能做的就是努力使经验误差最小化。
3、过拟合:
为了得到好的识别效果,我们希望能从训练样本中尽可能的学出适用于所有的样本的“普遍规律”。然而当学习器把训练样本学得“太好”的时候,很有可能把训练样本自身的一些特点当做了潜在新样本的特性,这样就会导致新样本的识别率减低,即泛华误差增大。这种现象称为“过拟合“(overfitting)。
相对的则是“欠拟合”(underfitting)。类比图2.1。
过拟合最常见的因素就是由于学习能力过于强大,以至于把训练样本不太一般的特性都学习到了;而欠拟合则通常是学习能力不足造成的。欠拟合比较容易克服,例如在决策树学习中扩展分支、神经网络学习中增加训练轮数等。而过拟合则很麻烦,无法彻底避免,能做的只是在各类机器学习算法中“缓解”过拟合。
二、评估方法(模型选择)
在机器学习中,往往有很多种算法可供选择,甚至同一种算法不同的参数,也会产生不同的模型,那么我们该怎么选择呢?
理想的做法当然是在模型选择的时候选择泛化误差最小的,但是正如上面讲到的,很多时候我们无法直接获取泛化误差,而训练误差又会由于过拟合现象不适合作为标准。那么,现实中如何进行模型评估和选择呢?
通常我们的样本需要有一个“训练集”,一个“测试集”,二者应当尽可能的互斥。这个应该很容易理解。
1)留出法(hold-out)
直接将数据集D划分为两个互斥的集合,其中一个训练集合S,另一个测试集合T。S训练出模型后,用T来评估其误差,作为对泛化误差的估计。
以二分类任务为例,D包含1000个样本,训练集S包含700个样本,测试集T包含300个样本,S训练后,T有90个样本分类错误,那么其错误率为90/300*100%=30%,相应的精度为1-30%=70%。
注意:
①训练集/测试集的划分尽可能保持数据分布的一致性。
例如D进行分层采样,70%训练,30%测试。若D包含500个正例,500个反例,则S中应包含350个正例,350个反例,T中包含150个正例,150个反例。
②一般需采用多次随机分割、重复试验进行评估后,取平均值作为评估结果。
对数据集D的分割,不同的方式可能会有不同的结果,所以应当尽可能的多次随机划分,例如取100次划分,然后得到100个结果再取平均值。
③常见的训练集/测试集划分比例大约在2/3~4/5
2)交叉验证法(cross validation)
将数据集D划分为K个大小相似的互斥子集,然后每次用k-1个子集作为训练集,剩下的那个子集作为测试集,这样可以得到k组训练结果,最终求平均值。该做法通常称为“k折交叉验证”(k-fold cross validation)。k最常取值为10。如图2.2所示。
与留出法相似,交叉验证法通常也有多种划分K个子集的方式,而且需要重复多次,常见的有“10次10折交叉验证”。
3)留一验证法(leave-one-outcross validation)
留一验证其实是交叉验证的一个特例。如果k取值为样本总数,即D中有m个样本,k=m,m个样划分为m个子集,每个子集包含一个样本。留一法使用的训练集比原始数据集只少了1个样本。
但是当数据集较大时,训练m个模型的计算开销大,是难以忍受的(100万个样本,需要训练100万个模型)。
三、性能度量
1)错误率和精度
这是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用与多分类任务。
2)查准率和查全率
错误率和精度虽常用,但并不能满足所有的任务需求。以西瓜为例,假定对一车西瓜进行判别,显然错误率是衡量有多少比例的瓜被误判,但若我们关心的是“挑出来的西瓜有多少比例是好瓜”,或者”所有好瓜中有多少比例被跳出来“,那么错误率显然是不够用的。
查准率(precision)和查全率(reall)更适用于此类需求。
对于二分类问题,可将真实类与预测类别的组合划分为 真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false negative)四种情形,分别表示为TP、FP、TN、FN,则有
TP+FP+TN+FN=样本总数。
分类结果的“混淆矩阵”(confusion matrix)如表2.1所示。
查准率和查全率是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。
3)ROC与AUC
ROC全称是“受试者工作特征”(Received Operating Characteristic)曲线。其纵轴是“真正例率”(True Positive Rate,TPR),横轴是“假正例率”(False Positive Rate,FPR)
AUC(Area Under Curve),即ROC曲线下的面积。判断ROC曲线的优劣,可以根据ROC曲线的面积,即AUC来判断。一般若一个学习器的ROC曲线被另一个学习器的ROC曲线包住,则可断定后者的性能优于前者。
有关ROC和AUC的更多学习内容,可参考文章机器学习之分类器性能指标之ROC曲线、AUC值
----周志华的《机器学习》读书笔记