2.1 经验误差与过拟合
一、经验误差
-
分类错误的样本数占样本总数的比例称为错误率。
即,m个样本中有a个样本分类错误·,则错误率E = a/m;
1-a/m称为精度,精度 = 1-错误率。 -
-
我们希望得到泛化误差小的学习器,然而我们事先不知道新的样本是什么样,只能努力将经验误差最小化。
很多情况下,我们学得一个经验误差很小,在训练集上表现很好的学习器,在新样本上往往表现不好。
二、过拟合
- 当学习器把训练样本学的“太好了”的时候,很可能已经把训练样本自身的一些特点当做所有潜在样本都具有的一般性质,而导致泛化能力下降,这种现象在机器学习中称为“过拟合”(overfitting),相对应的是“欠拟合”(underfitting)。
- 欠拟合通常由学习能力底下造成,比较容易克服,例如在决策树中扩展分支、在神经网络学习中增加训练轮数等。
- 过拟合则很麻烦,是机器学习面临的关键障碍。
- 过拟合是不可避免地。
三、模型选择
- 选择哪个学习算法、使用哪种参数配置的问题,即模型选择(model selection)问题。
- 我们无法直接获得泛化误差,而且经验误差又会出现过拟合现象。
2.2 评估方法
对样例的数据集D进行适当处理,产生训练集S和测试集(testing error)T。
然后使用测试集来测试训练出来的学习器对新样本的判别能力,以测试集上的测试误差近似表示泛化误差。
一、留出法
1.概念
- “留出法”(hold-out)直接将数据集D划分为两个互斥的集合,其中一个是训练集S,另一个作为测试集T。
2.划分原则
- S和T的划分要尽可能保持数据分布的一致性,避免数据划分过程引入额外的偏差而对最终结果产生影响。
- 一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。
3.缺点
- 对S和T的划分,如果S包含绝大多数样本,则训练出的模型可能更接近于用D训练出来的模型,但由于T比较小,评估结果可能不够准确。
- 如果T多包含一些样本,则训练集S与D差别更大,被评估的模型与用D训练出的模型差别较大,从而降低了评估结果的保真性(fidelity)。
- 这个问题没有完美的解决办法,常将大约2/3-4/5的样本用于训练。
二、交叉验证法
1.概念
- “交叉验证法”(cross validation),先将数据集D划分为k个大小相似的互斥子集,并尽可能保持数据分布的一致性。
- 每次用k-1个子集的并集作为训练集,剩余的那1个子集作为测试集。
- 从而可进行k次训练和测试,最终返回k个测试结果的均值
2.注意
- 交叉验证评估结果的稳定性和保真性在很大程度上取决于k的取值,为强调这一点,因此交叉验证通常称为 “k折交叉验证”(k-fold cross validation),例如,k取10时,称为10折交叉验证。
- 将数据集划分为k个子集有很多种方式,为减小因样本划分不同而引入的差别,k折交叉验证通常要随即使用不同的划分重复p次,最终评估结果是p次k折交叉验证的结果的均值,例如“10次10折交叉验证”。
3.留一法
- 数据集中含m个样本,则令k=m,得到交叉验证法的一个特例:留一法(Leave-One-Out,简称LOO)
- 留一法不受随机样本划分方式的影响
- 留一法使用的训练集与初始数据集相比只少了一个样本,故被评估的模型与期望评估的用D训练出来的模型很相似。评估结果往往被认为是比较准确的。
- 缺陷:在数据集比较大的时候,训练m个模型的计算开销往往是难以忍受的。而且,留一法的估计结果也未必永远比其他评估方法准确。
三、自助法
考虑交叉验证法和留出法的不足,减少训练样本规模不同造成的影响,同时比较高效的进行实验估计。
1.概念
- “自助法”(bootstrapping),直接以自助采样法(bootstrap sampling)为基础。
- 给定包含m个样本的数据集D,对它进行采样产生数据集D’:每次从D中有放回的抽取m个样本拷贝到D’中。
- D中有一部分样本会在D’中出现多次,有一部分一次都不会出现。样本不会被采集到D’中的概率为〖(1-1/m)〗^m,m→∞时概率约为0.368。
- 即,D中约有36.8%的样本为出现在D’中,将这些样本D-D’作为测试集。