开发者学堂课程【机器学习算法 :模型的评估方法-2】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7176
模型的评估方法-2
内容介绍
一、留一法 ( Leave-One-Out Loo)
二、自助法(Bootstrapping鞋带,来自于电影)
三、几种方法的适用场景
四、几种方法的选择
一、留一法 ( Leave-One-Out Loo)
是 k 折交叉验证的特殊形式,将数据集分成两个,其中一个数据集记录条数为1,作为测试集使用,其余记录作为训练集训练横型。训练出的模型和使用全部数据集训练得到的模型接近,其评估结果比较准确。缺点是当数据集较大时,训练次数和计算规模较大,浪费数据资源。
二、自助法(Bootstrapping 鞋带,来自于电影)
是一种产生样本的抽样方法,其实质是有放回的随机抽样。即从已知数据集中随机抽取一条记录,然后将该记录放入测试集同时放回原数据集,继续下一次抽样,直到测试集中的数据条数满足要求。
假设已知数据集 D 含有 n 条,采用自助法得到一个记录条数为 n 的测试集 T。D 中的一些数据会在 T 中出现多次,还有一些数据不会出现。
估算一下经过 n 次有放回采样后,大概多少记录未被选中:
某一次具体的采样,一条数据被选中的概率为 1 /n,未被选中的概率为:1-1/n
连续 n 次采样均未被选中的概率为:(1-1/n)n,取极限:
通过有放回的抽样获得的训练集去训练模型,不在训练集中的数据( 总数量的1/3 强)去用于测试,这样的测试结果被称作包外估计 ( Out-of Bag Estimate, OOB)
(有一部分不会选入训练集,就把它拿到测试集来做测试,就相当于通过这种有放回的采集,将数据分为俩个部分,一部分是训练集,剩下的作为测试集)
三、几种方法的适用场景
1、留出法
(1)实现简单、方便,在一定程度上能评估泛化误差
(将已知数据分为两份,大的一份做训练模型,小的一份做测试模型)
(2)测试集和训练集分开,缓解了过拟合
(测试集和训练集要是相同,就没有意义了,需要互斥)
(3)缺点:一次划分,评估结果偶然性大
(4)数据被拆分后,用于训练、测试的数据更少了
2、交叉验证法(留一法):
(1)k可以根据实际情况设置,充分利用了所有样本
(2)多次划分,评估结果相对稳定
(3)计算比较繁琐,需要进行k 次训练和评估,特别是留一法
3、自助法:
(1)样本量较小时可以通过自助法产生多个自助样本集,且有约36.8%的测试样本
(2)对于总体的理论分布没有要求
(3)无放回抽样引入了额外的偏差(比如说训练集会有一些重复的记录,相当于把重复记录的权重提升了)
四、几种方法的选择
1、已知数据集数量充足时,通常采用留出法或者k折交叉验证法
2、对于已知数据集较小且难以有效划分训练集/测试集的时候,采用自助法
3、对于已知数据集较小且可以有效划分训练集/测试集的时候,采用留一法
(实际上还有很多方法,基于这些办法也有一些衍生的办法,进行一些交叉,或者自定义,但是一定要了解这几个核心的办法)