3-模型选择的详细过程-机器学习
已经清楚了模型选择的理论,接下来探讨实际中,如何选择模型?
任务: 给定假设空间,损失函数,训练数据集,判断给出的各个模型,哪个更优秀?
场景一:训练数据集容量足够大。
方案一:使用经验风险最小化ERM策略
推理过程:
大前提:当训练数据集接近总体数据集时,可以认为经验损失是接近期望损失的。
小前提:期望损失越小,模型越优秀。
结论:当训练数据集接近总体数据集时,经验损失越小,模型越优秀。【经验风险最小化(empirical risk minimization,ERM)】
训练数据集接近总体数据集 ≈ 训练数据集的容量足够大
场景二:训练数据集容量较小。
方案一:在ERM基础上加入表示模型复杂度的正则化项regularizer
推理过程:
这个时候,便不能再使用场景一的ERM策略了。因为场景一的大前提已经不成立,也就是当训练数据集较小时,经验损失已经不能代表期望损失了。因为当训练数据集较小时,使用任何一个模型,都容易产生过拟合问题,导致经验损失很小,对期望损失的代表性变差。
其逻辑链是这样的:模型越复杂==>过拟合越严重==>得到的经验损失越小==>经验损失越不能代表期望损失==>对由于模型复杂度带来的偏差进行纠正==>加上表示模型复杂度的正则化项(regularizer)/罚项(penalty term),模型越复杂,正则化项越大。
正则化项是一个模型复杂程度的增函数。
方案二:重复使用给定的样本数据,做多次学习,然后取平均效果得到最终的模型。
方法 | 内容 | 优点 | 缺点 |
s折交叉验证法(s-fold cross validation) | 将样本随机均为K等份,随机选择1份做验证集,剩余K-1份做测试集。这样可以进行K次训练/验证,得到K个模型,最后取均值。 | ||
留一法(leave-one-out,简称LOO) | 当K=样本容量时,s折交叉验证法退化为留一法。 | 其训练集近似初始数据集,被认为评估结果较为准确 | 样本量大时,开销大 |
自助法(bootstrapping) | 对给定样本进行重复抽样,得到一个容量大小一样的样本,作为训练集。 据估计,初始样本中约有30%数据不在新样本中,这部分作为验证集。 多次进行该过程。 |
有利于集成学习。 | 重复抽样会让新样本的分布不同于初始样本,引入偏差 |
参考:李航《统计学习方法》