读书笔记《机器学习》 C2
Chapter 2
Author:Single Rush
第2章 模型评估与选择
Date : 2018.3.13
第2章 模型评估与选择
2.1 经验误差与过拟合
Summary of the Terms
错误率(error rate):分类错误的样本数占样本总数的比例,即如果在m个样本中由a个样本分类错误,则错误率。
相应的,精度,即“精度=1-错误率”:。
训练集上的“误差”称为“训练误差”或者“经验误差”,新样本上的“误差”称为“泛化误差”。
希望得到泛化误差小的学习器。
然而,我们事先并不知道新样本是什么样,实际能做的是努力使训练误差最小化。
过拟合问题
“过拟合”(overfitting):当学习器把训练样本学得“太好”了,可能把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,就会导致泛化性能下降。
“过拟合”由多种因素导致,最常见的情况是由于学习能力过于强大。
“欠拟合”(underfitting):对训练样本的一般性质尚未学好。
“欠拟合”通常是由于学习能力低下而造成的。或者是训练样本数过少,训练不足造成的。
欠拟合比较容易克服,而过拟合则很麻烦。
文献[2]中(pp.11-12,参考自文献[3])有对拟合问题较好的例子来解释:
训练数据集:
拟合这条曲线,用M次多项式:
可见M为0或1时均为欠拟合,M为9时为过拟合。
2.2评估方法
使用一个“测试集”(“testing set”)来测试学习器对新样本得判别能力,然后以测试集上的“测试误差”(“testing error”)作为泛化误差的近似。
测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过。
在此定义记号,本博文中完整数据集为,数据集为,训练集为,测试集为。
2.2.1 留出法(hold-out)
直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一份作为测试集T,即。
2.2.2 交叉验证法(cross validation)
先将数据集D划分为k个大小相似的互斥子集,即
每个子集都尽可能保持数据分布的一致性,即从D中通过分层采集得到。然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集;这样就可获得k组训练/测试集,从而可进行k次训练和测试,最终返回的是这个k个测试结果的均值。即
“k折交叉验证”(“k-fold cross validation”),k最常用的取值是10,此时称为10折交叉验证;其他常用的k值有5、20等。
2.2.3 自助法(bootstrapping)
以自助采样法(bootstrap sampling)为基础。给定包含m个样本得数据集,我们对它进行采样产生数据集:每次随机从中挑选一个样本,将其拷贝放入,然后再将该样本放回初始数据集中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行次后,我们就得到了包含个样本得数据集,这就是自助采样的结果。
简单估计得到样本在次采样中始终不被采到的概率是,即通过自助采样,初始数据集中约有36.8%的样本未出现在采样数据集中。于是我们可将用作训练集,用作测试集;这样,实际评估的模型与期望评估的模型都使用个训练样本,而我们仍有数据总量约1/3的、没在训练集中出现的样本用于测试。这样的测试结果,亦称“包外估计”(out-of-bag estimate)。
2.2.4 调参与最终模型
参数配置不同,学得模型的性能往往有显著差别。调参尤为重要。
验证集:模型评估与选择中用于评估测试的数据集。
性能度量
数学基础
Reference:
[1]周志华. 机器学习 : = Machine learning[M]. 清华大学出版社, 2016.
[2]李航. 统计学习方法[M]. 清华大学出版社, 2012.
[3]Bishop C M. Pattern Recognition and Machine Learning (Information Science and Statistics)[M]. Springer-Verlag New York, Inc. 2006.