个人机器学习笔记==》如何正确进行模型评估

一、误差:

经验误差:

在训练集样本中分类错误的样本占总训练样本集的比例,也称为训练误差

泛化误差:

在新样本上的误差比例。通常用它进行评估模型的好坏。

精度,错误率:

错误率是指错误的样本数占样本总数的比例。

1-错误率,精度为100%通常都是有问题的。

查准率,查全率:

对于二分类的问题,可将样例根据其真实类别与学习器预测类别的组合划分真正例(true positive)、假正例(false positive)、真反例(true negative)、假反例(false nagative)四种情形,令TP,FP,TN,FN分别表示其对应的样例数,则显然有TP+FP+TN+FN=样例总数。

如果使用上表的矩阵,查准率P与查全率R分别定义为:

P和R是一对矛盾的度量,一般情况下,查准率高时,查全率往往偏低,而查全率高时,查准率往往偏低。

这里还有几个基本概念的东西,这里就不一一详细介绍了,真的是公式打不出来,抱歉!

度量查全率=查准率的平衡点(Break-Event Point,简称BEP)

ROC(全称“受试者工作特征”Receiver Operating Characteristic)曲线:

纵轴是“真正例率”True Positive Rate 简称TPR,横轴是“假正例率”False Positive Rate,简称FPR

在进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者,若两个学习器的ROC曲线发生交叉,则难以一般性地断言两者孰优孰劣。此时较为合理的判据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve)

P-R曲线:使用查准率,查全率为纵横轴。

二、过拟合(相对的是欠拟合):

机器学习的目的就是从训练样本中尽可能学出适用于所有潜在样本的普遍规律,这样才能在遇到新样本时做出正确的判别。然而当学习器把训练样本学得太好了的时候,很可能已经把训练样本自身的而一些特点当作了所有潜在样本都会具有的一般性质,这样可能导致泛化性能下降。这种现象即称为过拟合。应当避免通过经验误差最小化来获得最优解。

三、评估方法:

这时候我们的测试集就要登场,通常测试集与训练集互斥,尽量保证其不在训练集中出现或者使用过。

分层采样:

训练/测试集的划分要尽可能保持数据分布的一致性,避免数据划分过程引入额外的偏差而对最终结果产生影响,例如分类任务中至少保持样本的类别比例相似。如果从采样(sampling)的角度来看待数据集的划分过程,则保留类别比例的采用方式通常称为“分层采样”(stratified sampling).例如通过对D进行分层采用而获得含70%样本的训练集S和含30%样本的测试集T,若D包含500个正例,500个反例,则分层采用得到的S应包含350个正例,350个反例,而T则包含150个正例和150个反例;若S,T中样本类别比例差别很大,则误差估计将由于训练/测试数据分布的差异而产生偏差。

留出法(hold-out):

将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即要在S上训练出模型,用T来评估其测试误差,作为对泛化误差的估计。

交叉验证(cross validation):

先将数据集D划分为k个大小相似的互斥子集,即。每个子集都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。显然,交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,为了强调这一点,通常把交叉验证法称为“k折交叉验证”。如果k取值是10,此时称为10折交叉验证。

自助法(bootstrapping):

这个方法主要是针对数据集小,难以有效划分训练/测试集时很有用。它直接以自助采样法(bootstrap sampling)为基础。给定包含m个样本的数据集D,我们对它进行采样产生数据集D':每次随机从D中挑选一个样本,将其拷贝放入D',然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D',这就是自助采样的结果。显然,D中有一部分样本会在D'中多次出现,而另一部分样本不出现。通过自助采样,初始数据集D中约有36.8%的样本未出现在采样数据集D'中,于是可以将D'用作训练集,D-D'用作测试集,这样实际评估的模型与期望评估模型都有m个训练样本,而我们仍有数据总量1/3的没在训练集中出现的样本用于测试。这样的测试结果,亦称为“包外估计(out-of-bag estimate)”。但是这个方法产生的数据集改变了原始数据集的分布,这会引入估计偏差。因此数据量充足的情况下,留出法和交叉验证法更常用一些。

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章