「吃瓜记」第2章 模型评估与选择
2.1 经验误差与过拟合
错误率 error rate:分类错误的样本占样本总数的比例。
精度 accuracy:1 - 错误率。
误差 error:学习器的实际预测输出与样本的真实输出之间的差异。
训练误差/经验误差 training/empirical error:学习器在训练集上的误差。
泛化误差 generalization error:学习器在新样本上的误差。
过拟合 overfitting:由学习能力过于强大造成。要克服过拟合比较麻烦,过拟合是无法彻底避免的,我们所能做的只是缓解过拟合,或者减小其风险。
欠拟合 underfitting:由学习能力低下造成。比较容易克服(如:决策树扩展分支,神经网络增加训练轮数)。
2.2 评估方法
通常,我们可通过实验测试来对学习器的泛化误差进行评估并进而做出选择。
使用一个测试集(testing set)来测试学习器对新样本的判别能力,并以测试集上的测试误差(testing error)作为泛化误差的近似。
2.2.1 留出法 hold-out
留出法直接将数据集划分为两个互斥的集合,其中一个集合作为训练集,另一个作为测试集。在训练集上训练出模型后,用测试集来评估其测试误差,作为对泛化误差的估计。
划分方式:划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。
分层采样 stratified sampling:保留类别比例的采样方式,来保持样本类别比例类似的划分手段。
划分次数:单次使用留出法得到的评估结果往往不够稳定可靠,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。
划分数量:将大约 2/3 ~ 4/5 的样本用于训练,剩余样本用于测试。
2.2.2 交叉验证法 cross validation
交叉验证法先将数据集划分为k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性,即从数据集中通过分层采样得到。然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这k个测试结果的均值。
交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,通常把交叉验证法称为k折交叉验证(k-fold cross validation)。最常用的取值为10,其次5、20等。
留一法 Leave-One-Out(LOO):假定数据集D中包含m个样本,令k=m,m个样本划分为m个数据子集,每个样本作为一个子集。缺点:“没有免费午餐”,留一法不会永远比其他评估方法准确。留一法无法应用于较大的数据集。
2.2.3 自助法 bootstrapping
自助法直接以自助采样法(bootstrap sampling)为基础,即以有放回采样的方式采样出训练集。训练集显然可能会有重复的样本,且只采样了数据集中的部分数据。通过计算,可得到,通过自助采样,数据集中有36.8%的样本未出现在训练集中。
背景:留出法和交叉验证法中,由于保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比数据集小,这必然会引入一些因训练样本规模不同而导致的估计偏差。而留一法受训练样本规模变化的影响较小,但计算复杂度又太高了。
优点:自助法适用于数据集较小、难以有效划分训练/测试集的情况;自助法能从初始数据集中产生多个不同的训练集,很有利于集成学习。
缺点:自助法改变了初始数据集的分布,引入估计偏差。
在初始数据量足够时,留出法和交叉验证法更常用一些。
2.3 性能度量
2.4 比较验证
todo 待学习
2.5 偏差与方差
todo 待学习
参考资料
- 机器学习,周志华,清华大学出版社