机器学习模型评估与选择

一、 经验误差与过拟合

学习器的实际预测输出与样本的真实输出之间的差异称为‘误差’,学习器在训练集上的误差称为‘训练误差’or‘经验误差’,在新样本上的误差称为‘泛化误差’

 

过拟合:由于学习器把训练样本学的“太好了”的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这将导致泛化性能下降

    原因:学习器学习能力过于强大,以至于把训练样本所包含的不太一般的特性都学到了,比较难克服

欠拟合:对训练样本的一般性质尚未学好,对新样本分类效果不好

    原因:学习能力低下

 

二、 评估方法

1、如何产生训练集S和测试集T

(1)留出法

   “留出法”(hold-out)直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T

在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。

例:对于二分类问题为例,假设D包含1000个样本,可将其划分为S 700个样本,T300个样本

 

注意:训练/测试集的划分要尽可能保持数据分布的一致性,以避免因数据划分过程引入额外的偏差而对最终结果差生影响

因此,在分类任务中至少保持样本的类别比例相似,保留类别比例的采样方式通常称为“分层采样”,如对D进行分层采样,70%样本作为训练集S,30%作为测试集T,D中包含500个正例,500个反例,则S应包含350个正例和350个反例,T应该包含150个正例和150个反例。

在使用留出法时,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果,例如进行100次随机划分,每次产生一个训练/测试集用于实验评估,100次后就得到100个结果,而留出法返回的则是这100个结果的平均值。

 

常用做法:将大约2/3-4/5的样本用于训练,剩余的用于测试

(2)交叉验证法

“交叉验证法”(cross validation)先将数据集D划分为k个大小相似的互斥子集,即D=D1∪D2∪...∪Dk,Di∩Dj=?。每个子集Di都尽可能保持数据分布的一致性,即从D中通过分层采样得到。然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,从而可得到k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。

通常又把交叉验证法称为“k折交叉验证”(k-fold cross validation),k最常用的是10,此时称为“10折交叉验证”。

与留出法相似,将数据集D划分为k个子集同样存在多种划分方式,为减小因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,常见的有“10次10折交叉验证”。

 特例:如果数据集D包含m个样本,若令k=m,则得到了交叉验证的一个特例:留一法(Leave-One-Out)。

留一法不受随机样本划分方式的影响,因为m个样本只有唯一的方式划分为m个子集——每个子集包含一个样本;留一法使用的训练集与初始数据集相比至少了一个样本,使得在大多数情况下,留一法中被实际评估的模型与期望评估的用D训练出来的模型很相似。因而,留一法的评估结果比较准确,但是数据集比较大是,其计算开销也将很大。

 

(3)自助法

我们通常希望评估的是用D训练出的模型,但在留出法和交叉验证中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,所以讲引入一些因训练样本不同而导致的估计偏差。

“自助法”(bootstrapping)可以减少训练样本规模不同造成的影响,它以自主采样法为基础,

给定包含m个样本的数据集D,对它进行采样产生数据集D’,每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,使得该样本再下次采样时仍有可能被采到;此过程重复m次后,就得到了包含m个样本的数据集D’。这样,D中将有一部分样本会在D’中多次出现,而另一部分样本不出现。

样本在m次采样中始终不被采到的概率是(1-1/m)的m次方,取极限得到1/e,约等于0.368。即通过自主采样,初始数据集D中约有36.8%的样本未出现再采样数据集D'中。

因此,可以将D'作为训练集,D\D'作为测试集。

总结:自助法再数据集较小、难以有效划分训练/测试集时很有用,且自助法可以从数据集中产生多个不同的训练集,这对集成学习等方法很有用。

然而,自助法产生的数据集改变了初始数据集的分布,将会引入估计偏差。因此,在数据量足够多时,留出法和交叉验证法更常用一些。

 

(三)性能评估

1. 错误率与精度

错误率是分类错误的样本数占样本总数的比例,精度是分类正确的样本数占样本总数的比例。

 

2. 查准率、查全率与F1

查准率P :是指预测的结果中有多少是正确的结果

查全率R:是指正确的结果又多少被预测出来了

F_{1}=\frac{2*P*R}{P+R}

 

F1是用基于查准率和查全率的调和平均定义的:

\frac{1}{F^{_{1}}}=\frac{1}{2}\cdot (\frac{1}{P}+\frac{1}{R})

3. ROC和AUC

ROD即“受试者工作特征”(Receiver Operating Characteristic)曲线

AUC(Area Under ROC Curve)

4. 代价敏感错误率与代价曲线

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值