0. 前言

之前的课程讲解了为了避免overfitting,可以使用regularization方法来解决。在之前的Ein上加上一个regularizer,生成Eaug,选择合适的λ将其最小化,通过减小模型复杂度来增加泛化能力。今天将会介绍另一种增加泛化能力的方法:Validation。

1. Model Selection Problem

  • 在机器学习中,模型选择一直是一个比较麻烦的问题。首先是我们选择算法,有PLA、Pocket、逻辑回归、线性回归一堆算法可以挑选,选完算法之后是迭代次数T的选择,之后是学习速率η的选择,接着是模型特征转换Φ的选择然后是正则化regularizer的选择,有L2,L1等等;最后是正则化系数λ的选择。不同的搭配,有不同的机器学习效果。我们的目标就是找到最合适的搭配,构建最好的机器学习模型。
    林轩田机器学习基石笔记14:Validation
  • 我们可以做出一个独立于训练样本的测试集,分别对每个模型进行测试,选择Etest最小的模型。测试集需要从训练集中分离出来,前提是两者是独立同分布的。

2. Validation

  • Validation过程:讲已有的数据集D分成两部分:测试集Dval和训练集Dtrain。对M个分类器分别对测试集和训练集进行分类,最后得到每个分类器的EvalEtrain,其中在测试集中表现最好的分类器(Eval最小)为最好的分类器。
    林轩田机器学习基石笔记14:Validation

3. Leave-One-Out Cross Validation

  • 留一交叉验证:使用训练集对分类器进行训练过之后,使用每一个数据作为测试集进行测试,得到一个误差en,对所有数据便利一遍并取平均值,得到平均误差Elopval此为留一交叉验证。
  • error 与特征数量的关系如下图所示:
    林轩田机器学习基石笔记14:Validation
    Ein:已有数据误差
    Eout:泛化的数据误差
    Ecv:留一交叉验证误差
    可以看到我们只要保证Ecv尽可能小,就能近似的达到Eout尽可能小。

4. V-Fold Cross Validation

  • 留一交叉验证的缺点:

    1. 计算量:有N个数据,就要计算N次。
    2. 稳定性:如果是个二分问题,预测本身存在不稳定的因素,结果会存在很大的跳动,稳定性不好。
  • 改进方法:V折交叉验证:讲数据先分成几分,比如N=1000,取V=10,那么数据分成十份、每份数据100个样本。每一份的误差为其中样本的平均误差,最终结果为每一份的平均误差。这么处理之后,有更强的稳定性且计算量减少了10倍。

5. 总结

这一节课主要讲解了Validation方法,即讲样本分为训练样本和测试样本。比较了留一交叉验证和V-折交叉验证方法,其中V-折交叉验证是最常用的验证方法。

相关文章: