一、经验误差与过拟合
误差率
分类错误的样本数占样本总数的比率。精度
分类正确的样本数占总数的比率。误差
学习器的实际预测输出与样本的真实输出之间的差异。训练误差(经验误差)
学习器在训练集上的误差。现状
很多情况下,可以学的一个经验误差很小、在训练集上表现很好的学习器;甚至对训练样本的分类可以达到100%的准确。挑战
这样的学习器在多数情况下并不好。实际期望
- 目标:让学习器在新样本上表现很好;
- 方法:从训练样本中尽可能学出适用于所有潜在样本的 “普遍规律” ;
- 挑战:
- 过拟合:把训练样本学得 “太好”,可能把训练样本本身的特性,当做所有潜在样本都会具有的一般性质;导致性能下降;
- 欠拟合:对训练样本的一般性质尚未学好。
- 原因分析
- 过拟合:学习能力过于强大,把训练样本所包含的特性都学到了;
- 欠拟合:学习能力低下;
- 解决办法:
- 欠拟合(简单):在决策树学习中,扩展分支;在神经网络学习中,增加训练轮数;
- 过拟合(复杂):是机器学习面临的关键障碍,各类学校西算法都有针对过拟合的措施,只能缓解,无法彻底避免;
理解:机器学习面临的问题,通常是NP难的,甚至更难;而有效的学习算法必然是在多项式时间内运行完成,若可彻底避免过拟合,则通过经验误差最小化就能获得最优解。这与 “P=NP” 矛盾;只要相信 “P != NP”,那么过拟合不可避免;
- 挑战
- 挑战:对于同一个任务,有多种学习算法可供选择,同一个学习算法设置不同参数,也会得到不同的模型;
- 存在的问题:选择哪一个学习算法?选择哪一种参数配置?
- 理想解决办法
- 对候选模型的泛化误差进行评估;
- 选择繁华误差最小的那个模型。
- 现实挑战:
- 无法直接获得泛化误差;(潜在样本未知)
- 训练误差不适合作为标准;(过拟合并不好)
二、评估方法
1. 现实中如何选择学习算法和参数配置?
可通过实验测试来对学习器的泛化误差进行评估,进而做出选择。
2. 测试集
- 作用:测试学习器对新样本的判别能力,然后,以测试集上的 “测试误差” 作为泛化误差的近似;
- 获得:通常假设测试样本是从样本真实分布中独立同分布采样获得。
- 注意:测试集应该尽量与样本集互斥,也就是,样本尽量不在训练集中出现,未在训练过程中使用过。
3. 原因
学校的学习锻炼的是学生 “举一反三” 的能力,不应该出之前学过的题目。
4. 获得测试集和训练集
- 方法:对数据集进行适当的处理,从中产生训练集和测试集。
5. 获取方法1:留出法
1)留出法
直接将数据划分为两个互斥的集合,其中一个作为训练集,另一个作为测试集。
用训练集训练出模型后,用测试集评估误差。
2)需要的性质
- 训练集和测试集的划分尽可能保持数据分布的一致性;
- 避免因数据划分过程引入额外的偏差,而对最终结果产生影响;
3)使用方法
采用随机划分的方法,重复进行实验评估后,取平均值作为留出法的训练结果。
4)比例问题
若训练集太大,则训练处的模型接近了数据集的模型;若训练集太小,那么,评估结果可能不够精确。需要在二者之间做一个均衡;
- 均衡:一般训练集和测试集的比例:(2/3 - 4/5);
6. 交叉验证法
1)原理
- 将数据集 D 划分为k个大小相似的互斥子集,每个子集尽量保持数据分布的一致性;
- 从中选取 k-1 个子集作为训练集,剩下一个子集作为测试集;
- 从而可以获得 k 个训练集/测试集的组合;
- 最终获得k个测试结果的均值。
2)子集的划分
- 挑战:数据集 D 划分为k个子集,存在多种划分方式;需要减少因样本划分不同而引入的差异。
- 解决:随机使用不同的划分重复 p 次,最终获得的结果是 p 次k折交叉验证结果的均值。
3)特殊案例:留一法
样本有m个,划分子集数 k=m,也就是说,只保留一个样本不训练。
- 优势:一般认为它评估的结果比较准确
- 缺陷:样本大时,需要训练的模型太多。
7. 分析
- 留出法:实际评估的模型使用的训练集比数据集小,引入了因样本规模不同而导致的偏差;
- 留一法:计算复杂度高;
动机:需要 ① 减少训练样本规模不同的影响;② 高效的进行实验估计;
8. 自助法
1)步骤
- 首先,从初始数据集 D 中随机挑选一个样本拷贝放入D'。
- 重复上述过程,m次,D' 中也包含 m 个元素;
- D' 作为训练数据,D\D' 作为测试数据。
2)性能
- D' 包含不重复的元素大约占 2/3,D\D' 大约占1/3;
- 别称:包外估计;
3)特点
- 长处:在数据集较小,难以有效划分训练集/测试集的情况下很有用;
-分析:自助法产生的数据集改变了初始数据及的分布,引入了额外的估计偏差; - 短处:在数据量充足的情况下,留出法和交叉验证法更加常用;