《西瓜书》笔记02:模型评估和选择

1. 经验误差与过拟合

训练误差:学习器在训练集上的误差。

泛化误差:学习器在新样本上的误差。

希望得到泛化误差小的学习器,但能做的是让训练误差尽量小。

为了达到这个目的,应该从训练样本中尽可能学习出适用于所有潜在样本的普遍规律,这样才可遇到新样本正确判断。

过拟合:当学习器把训练样本学得太好了的时候,很可能已经把训练样本的一些特点,当成了所有潜在样本都具有的一般性质,导致泛化能力下降。

欠拟合:对训练样本的一般性质尚未学好。

直观上图:

这里写图片描述

一图胜千言。

欠拟合比较容易解决。比如决策树学习中扩展分支,NN学习中增加训练轮数等。而过拟合比较棘手,它是ML面临的一个障碍,各种学习算法中都会有缓解过拟合的措施。

过拟合能完全避免吗?

答:不能。只能缓解/减弱。为什么?ML面临的问题经常是NP难的,而有效的学习算法解决的是P问题。如果说我们可以避免过拟合,意思就是在学习算法为P问题下,通过经验误差最小化,就可获得最优解(NP问题),相当于P=NP了。矛盾。

我们往往会得到多个模型。模型选择是一个问题,理想的办法是选择泛化误差最小的,但无法获得。训练误差由于过拟合现象存在而不适合作为标准,那么如何进行模型选择?

2. 评估方法

实际任务中需要考虑时间,存储开销,可解释性等多因素,以下讨论只考虑泛化误差。

模型选择时,可通过测试对泛化误差进行评估来选择。需使用测试集来测试模型对新样本的判别能力,以测试集上的测试误差,来近似泛化误差。

假设:测试样本也是从样本的真实分布中,独立同分布采样得到的。

测试集与训练集互斥,测试样本不能在训练集中出现。(否则相当于用平时课后练习当作考试题目,不能看出学生的举一反三的能力)

对数据集D中的m个样例,如何分开训练集和测试集呢?

有几种方法:

  • 留出法(hold-out)
  • 交叉验证法(cross validation)
  • 自助采样法(bootstrapping)/可重复采样/可放回采样

2.1 留出法

将D分为两个互斥集合,S用作训练,T用作评估其测试误差,作为泛化误差的估计。

划分时注意:保持数据分布的一致性,避免因数据划分引入额外偏差。在分类任务中,保持样本的类别比例相似,做“分层采样”。

例如,D中1000个样例,500个正例,500个反例。则7:3划分时,应S中350个正例,350个反例;T中150个正例,150个反例。

单次使用留出法不够可靠,可以采用随机划分,重复进行实验评估后取均值作为评估结果(还可得到评估结果的标准差)。

还有个问题:S和T的划分比例。S若太小,则偏差较大;T若太小,则方差较大。通常可取2/3~4/5(0.67~0.8)的比例训练较为合适。

2.2 交叉验证法

将 D 划分为 k 个大小相似的互斥子集。每个子集通过分层采样得到。

分层采样:例如划分10个子集,则正例分10份,反例分10份,两者组合为一份子集。子集的正负比等于D的正负比。

每次用 k-1 个子集为训练,1个为验证。这样一共可搞 k 次。最终得到k次测试结果的均值。

该法关键取决于 k 的取值,因此也叫 k折交叉验证(k-fold cross validation)。k最常用为10,5,20等。

为减小样本划分不同带来的差别,随机划分p次,最终得到p次k折的均值。

若 k = m,则得到交叉验证法的特例:留一法(Leave-One-Out)。留一法不受样本划分影响,因为是唯一的。训练集包含 m-1 个样例,则其结果比较准确。

留一法缺点:数据集D很大时,则训练m个模型的开销太大。如m=1000,000时,需训练一百万个模型。另外,留一法的估计结果也未必永远比其他方法准确,没有免费的午餐。

2.3 自助采样法

留出法和交叉验证法,都保留了一部分样本测试,实际评估的模型所使用的训练集比D小,势必因训练样本规模不同而导致的估计偏差。

留一法不受规模变化的影响,但计算开销太大。有无better法?

自助法(bootstrapping):以自助采样/可重复采样/有放回采样为基础。给定D,每次随机挑选一个样本放入D*,将该样本放回D。重复执行m次,则得到D*:含m个样本的集。此即自助采样的结果。

D中将有些样本不出现。样本在m次采样中始终不被采的概率是:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值