大数据,机器学习,人工智能人工智能/模式识别/机器学习精华专题R语言与统计分析

《统计学习方法》-第一章(2)

2019-08-10  本文已影响2人  皮皮大

模型评估和选择

训练误差和测试误差

假设学习模型是Y=\hat{f}(X),训练误差是模型关于训练数据集的平均损失:R_{emp}(\hat{f})
R_{emp}(\hat{f})=\frac{1}{N}\sum_{i=1}^NL(y_i,\hat{f}(x_i))其中N是训练样本的容量
训练误差是关于数据集的平均损失:e_{test}=\frac{1}{N'}\sum_{i=1}^{N'}L(y_i,\hat{f}(x_i))其中N'是测试样本的容量

当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率error ratee_{test}=\frac{1}{N'}\sum_{i=1}^{N'}I(y_i \neq {\hat{f}}(x_i))
I是指示函数,即y\neq{\hat{f}}(x)时为1,否则为0;相应的测试集上的准确率为r_{test}=\frac{1}{N'}\sum_{i=1}^{N'}I(y_i = {\hat{f}}(x_i))
明显的:r_{test} + e_{test}=1

总结

过拟合与模型选择

过拟合:一味地追求提高对训练数据的预测能力,所选模型的复杂度会比真实模型高,这种现象称之为过拟合

栗子:对M次多项式进行拟合f_M(x,w)=w_0+w_1x+w_2x^2+...+w_Mx^M=\sum_{j=0}^Mw_jx^j

image.png

解决办法:

  1. 在多项式拟合中,训练误差随着多项式系数即模型复杂度的增加而减小
  2. 测试误差随着模型复杂度的增加先减小后增加
  3. 优化的目的:使得测试误差达到最小
  4. 当模型的复杂度过大,就会出现过拟合的现象,使用正则化和交叉验证来解决
image.png

正则化

模型选择的典型方法是正则化。正则化是结构风险最小化策略的实现,在经验风险的基础上加上了一个正则项regularrizer或者罚项penalty term。正则化的一般形式\mathop{min}\limits_{f\in \Gamma}\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+\lambda J()

正则化作用:选择经验风险和模型复杂度同时较小的模型

交叉验证

普通模型选择方法

进行模型选择的一般做法是指将数据集分成三个部分:

在学习到不同复杂度的模型中,选择对验证集有最小预测误差的模型

简单交叉验证

交叉验证cross validation的做法是数据分成两部分:

通过训练集在不同的条件下进行模型的训练,从而得到模型,再把测试集数据放入模型进行评估,选择出测试误差最小的模型

S折交叉验证

S-fold cross validation 的做法是:

留一交叉验证

S折交叉验证的特殊情形是S=N,变成留一交叉验证 leave-ont-out cross validation,往往是在数据缺乏的情况下使用

泛化能力

什么是泛化误差

学习方法的泛化能力是指由学习方法得到的模型对未知数据的预测能力,是学习方法重要的性质。通常是采用通过测试误差来评估学习方法的泛化能力。缺陷是

如果学到的模型是\hat{f},用该模型对未知数据预测的误差称为泛化误差generalization error,通过泛化误差来反映学习的泛化能力:
\begin{align} R_{exp}(f) & = E_P[L(Y,\hat{f}(X))]\\ & = \int_{X{\times}Y}{L(y, \hat{f}(x))P(x,y)}{\rm d}x{\rm d}y \end{align}

泛化误差就是所学习到的模型的期望风险

泛化误差上界GEB

泛化能力分析往往是通过研究比较泛化误差的概率上界来实现的,称之为泛化误差上界 generalization error bound。泛化误差两个特质:

二分类问题的GEB讨论

泛化误差上界定理
对于二分裂问题,当假设空间是有限个函数的集合,\Gamma = \{f_1, f_2, ..., f_d\},d是函数的个数,任意的f\in \Gamma,至少有以概率1-\delta, 0 < \delta < 1使得如下式子成立:R(f) \leq \hat R(f)+\epsilon (d,N,\delta),其中\epsilon (d,N,\delta)=\sqrt {\frac{1}N(logd+log \frac {1}\delta)}

上一篇 下一篇

猜你喜欢

热点阅读