【机器学习笔记】第8章:偏差与方差

第8章:偏差与方差

8.1 评估模型

用训练集对模型进行训练的时候,通常会存在两种问题,“过拟合”和“欠拟合”,分别对应高方差(high variance)和高偏差(high bias)。

高方差:拟合程度过好,以至于过拟合,无法泛化新的样本数据
高偏差:拟合程度太差,以至于欠拟合,训练模型效果差,存在很大的误差

模型评估:

  1. 随机划分训练集和测试集;
  2. 用训练集进行模型训练,用测试集计算代价函数 J t e s t ( θ ) J_{test}(\theta) Jtest(θ);
  3. 或者采用错误分类率 T e s t   e r r o r = 1 m ∑ i = 1 m e r r ( h θ ( x ( i ) ) , y ( i ) ) Test\ error=\frac{1}{m}\sum_{i=1}^merr(h_\theta(x^{(i)}),y^{(i)}) Test error=m1i=1merr(hθ(x(i)),y(i)) e r r ( h θ ( x ) , y ) = { 1 i f h θ ( x ) ≥ 0.5 , y = 0 o r h θ ( x ) < 0.5 , y = 1 0 i f e l s e err(h_\theta(x),y)= \begin{cases} 1 &if \quad h_\theta(x)\geq0.5,y=0\quad or\quad h_\theta(x)<0.5,y=1\\ 0 &if \quad else \end{cases} err(hθ(x),y)={10ifhθ(x)0.5,y=0orhθ(x)<0.5,y=1ifelse

模型选择:

  1. 将数据划分成训练集、交叉验证集和测试集;
  2. 用训练集训练出多个模型,将所有模型分别用交叉验证集计算出代价函数 J c v ( θ ) J_{cv}(\theta) Jcv(θ);
  3. 选择代价函数值 J c v ( θ ) J_{cv}(\theta) Jcv(θ)最小的模型,用这个模型对测试集计算出代价函数 J t e s t ( θ ) J_{test}(\theta) Jtest(θ);

训练误差: J t r a i n ( θ ) = 1 2 m t r a i n ∑ i = 1 m t r a i n ( h θ ( x t r a i n ( i ) ) − y t r a i n ( i ) ) 2 J_{train}(\theta)=\frac{1}{2m_{train}}\sum_{i=1}^{m_{train}}(h_\theta(x_{train}^{(i)})-y_{train}^{(i)})^2 Jtrain(θ)=2mtrain1i=1mtrain(hθ(xtrain(i))ytrain(i))2交叉验证误差: J c v ( θ ) = 1 2 m c v ∑ i = 1 m c v ( h θ ( x c v ( i ) ) − y c v ( i ) ) 2 J_{cv}(\theta)=\frac{1}{2m_{cv}}\sum_{i=1}^{m_{cv}}(h_\theta(x_{cv}^{(i)})-y_{cv}^{(i)})^2 Jcv(θ)=2mcv1i=1mcv(hθ(xcv(i))ycv(i))2测试误差: J t e s t ( θ ) = 1 2 m t e s t ∑ i = 1 m t e s t ( h θ ( x t e s t ( i ) ) − y t e s t ( i ) ) 2 J_{test}(\theta)=\frac{1}{2m_{test}}\sum_{i=1}^{m_{test}}(h_\theta(x_{test}^{(i)})-y_{test}^{(i)})^2 Jtest(θ)=2mtest1i=1mtest(hθ(xtest(i))ytest(i))2

8.2 最高次幂对方差/偏差的影响

如图所示,横坐标为假设函数的最高次幂,纵坐标为错误分类率或者代价函数,一般情况下:
在这里插入图片描述

  • d d d很小时,曲线无法拟合大部分数据,具有高偏差, { J t r a i n ( θ )   w i l l   b e   h i g h J t e s t ( θ ) ≈ J t r a i n ( θ ) \begin{cases} J_{train}(\theta)\ will \ be \ high \\ J_{test}(\theta)\approx J_{train}(\theta) \end{cases} {Jtrain(θ) will be highJtest(θ)Jtrain(θ)
  • d d d很大时,曲线拟合训练集过好,造成无法泛化测试集,具有高方差, { J t r a i n ( θ )   w i l l   b e   l o w J t e s t ( θ ) ≫ J t r a i n ( θ ) \begin{cases} J_{train}(\theta)\ will \ be \ low \\ J_{test}(\theta)\gg J_{train}(\theta) \end{cases} {Jtrain(θ) will be lowJtest(θ)Jtrain(θ)

8.3 正则化参数对方差/偏差的影响

如图所示,横坐标为正则化参数 λ \lambda λ ,纵坐标为错误分类率或者代价函数,一般情况下:
在这里插入图片描述

  • λ \lambda λ 很小时,未减少权重系数的大小,曲线对训练集的拟合程度很好,具有高方差
  • λ \lambda λ 很大时,减少权重系数太多,曲线无法很好的拟合数据,具有高偏差

8.4 高偏差的学习曲线

如图所示,横坐标为训练集大小,纵坐标为错误分类率或者代价函数,一般情况下:
在这里插入图片描述

  • 随着数据集的增大,训练集的误差会越来越大,测试集的误差会越来越小
  • m → ∞ m\rightarrow \infty m 时, 训练集和测试集的误差均会趋近于一个较大的常数

8.5 高方差的学习曲线

如图所示,横坐标为训练集大小,纵坐标为错误分类率或者代价函数,一般情况下:
在这里插入图片描述

  • 随着数据集的增大,训练集的误差会越来越大,测试集的误差会越来越小
  • 训练集的误差和测试集的误差之间的间隙较大

8.6 对机器学习算法的调试

  • 采用更多的训练集 → \rightarrow 解决高方差(过拟合)
  • 减少特征数量 → \rightarrow 解决高方差(过拟合)
  • 增加特征数量 → \rightarrow 解决高偏差(欠拟合)
  • 增加最高次幂 → \rightarrow 解决高偏差(欠拟合)
  • 降低正则化系数 λ → \lambda \rightarrow λ 解决高偏差(欠拟合)
  • 增加正则化系数 λ → \lambda \rightarrow λ 解决高方差(过拟合)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值