第8章:偏差与方差
8.1 评估模型
用训练集对模型进行训练的时候,通常会存在两种问题,“过拟合”和“欠拟合”,分别对应高方差(high variance)和高偏差(high bias)。
高方差:拟合程度过好,以至于过拟合,无法泛化新的样本数据
高偏差:拟合程度太差,以至于欠拟合,训练模型效果差,存在很大的误差
模型评估:
- 随机划分训练集和测试集;
- 用训练集进行模型训练,用测试集计算代价函数Jtest(θ);
- 或者采用错误分类率Test error=m1i=1∑merr(hθ(x(i)),y(i))err(hθ(x),y)={10ifhθ(x)≥0.5,y=0orhθ(x)<0.5,y=1ifelse
模型选择:
- 将数据划分成训练集、交叉验证集和测试集;
- 用训练集训练出多个模型,将所有模型分别用交叉验证集计算出代价函数Jcv(θ);
- 选择代价函数值Jcv(θ)最小的模型,用这个模型对测试集计算出代价函数Jtest(θ);
训练误差:Jtrain(θ)=2mtrain1i=1∑mtrain(hθ(xtrain(i))−ytrain(i))2交叉验证误差:Jcv(θ)=2mcv1i=1∑mcv(hθ(xcv(i))−ycv(i))2测试误差:Jtest(θ)=2mtest1i=1∑mtest(hθ(xtest(i))−ytest(i))2
8.2 最高次幂对方差/偏差的影响
如图所示,横坐标为假设函数的最高次幂,纵坐标为错误分类率或者代价函数,一般情况下:

- 当d很小时,曲线无法拟合大部分数据,具有高偏差,{Jtrain(θ) will be highJtest(θ)≈Jtrain(θ)
- 当d很大时,曲线拟合训练集过好,造成无法泛化测试集,具有高方差,{Jtrain(θ) will be lowJtest(θ)≫Jtrain(θ)
8.3 正则化参数对方差/偏差的影响
如图所示,横坐标为正则化参数 λ ,纵坐标为错误分类率或者代价函数,一般情况下:

- 当 λ 很小时,未减少权重系数的大小,曲线对训练集的拟合程度很好,具有高方差
- 当 λ 很大时,减少权重系数太多,曲线无法很好的拟合数据,具有高偏差
8.4 高偏差的学习曲线
如图所示,横坐标为训练集大小,纵坐标为错误分类率或者代价函数,一般情况下:

- 随着数据集的增大,训练集的误差会越来越大,测试集的误差会越来越小
- 当 m→∞ 时, 训练集和测试集的误差均会趋近于一个较大的常数
8.5 高方差的学习曲线
如图所示,横坐标为训练集大小,纵坐标为错误分类率或者代价函数,一般情况下:

- 随着数据集的增大,训练集的误差会越来越大,测试集的误差会越来越小
- 训练集的误差和测试集的误差之间的间隙较大
8.6 对机器学习算法的调试
- 采用更多的训练集 → 解决高方差(过拟合)
- 减少特征数量 → 解决高方差(过拟合)
- 增加特征数量 → 解决高偏差(欠拟合)
- 增加最高次幂 → 解决高偏差(欠拟合)
- 降低正则化系数 λ→ 解决高偏差(欠拟合)
- 增加正则化系数 λ→ 解决高方差(过拟合)