《吴恩达机器学习》笔记——11 应用机器学习的建议
1 决定下一步做什么
问题 | 算法改进 |
---|---|
产生较大误差 | 1. 使用更多训练样本 2. 尝试选用更少特征 3. 获取更多特征 4. 增加多项式特征 5. 增大或减小 λ \lambda λ |
2 模型评估与选择
评估 | 单个模型 | 多个模型选择 |
---|---|---|
数据集 | 训练集(70%) 测试集(30%) | 训练集(60%) 交叉验证集(20%) 测试集(20%) |
训练/测试 | 1. 从训练集中学得
θ
\theta
θ 2. 计算测试误差 | 使用交叉验证集来测试计算出 J c v ( θ ) J_{cv}(\theta) Jcv(θ),观察效果并选择交叉验证误差最小的假设作为模型 |
3 偏差与方差
问题类型 | 偏差问题(bias) | 方差问题(variance) |
---|---|---|
来源 | 训练误差 | 交叉验证误差 |
欠拟合 | 高 | 高 |
过拟合 | 低 | 高 |
正则化 | λ ↑ → 偏 差 ↑ \lambda\uparrow\rightarrow 偏差\uparrow λ↑→偏差↑ | { 欠 拟 合 , 高 方 差 λ 过 大 低 方 差 λ 合 适 过 拟 合 , 高 方 差 λ 过 小 \left\{\begin{matrix}欠拟合,高方差& \lambda过大\\低方差&\lambda合适\\过拟合,高方差&\lambda过小\end{matrix}\right. ⎩⎨⎧欠拟合,高方差低方差过拟合,高方差λ过大λ合适λ过小 |
4 学习曲线
参数 | 描述 |
---|---|
J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ) | 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 \frac{1}{2m}\sum\limits^m_{i=1}(h_\theta(x^{(i)})-y^{(i)})^2 2m1i=1∑m(hθ(x(i))−y(i))2 |
J c v ( θ ) J_{cv}(\theta) Jcv(θ) | 1 2 m c v ∑ i = 1 m c v ( h θ ( x c v ( i ) ) − y c v ( i ) ) 2 \frac{1}{2m_{cv}}\sum\limits^{m_{cv}}_{i=1}(h_\theta(x_{cv}^{(i)})-y_{cv}^{(i)})^2 2mcv1i=1∑mcv(hθ(xcv(i))−ycv(i))2 |
m m m | 训练集大小(横轴) |
e r r o r error error | 误差(纵轴) |
学习曲线 m ↑ → m\uparrow\rightarrow m↑→ | 高偏差 | 高方差 |
---|---|---|
J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ) | 逐渐增大 → \rightarrow →不再增大 | 缓慢增大 |
J c v ( θ ) J_{cv}(\theta) Jcv(θ) | 逐渐减小
→
\rightarrow
→不再减小(仍较大) ( ≈ J t r a i n ( θ ) \approx J_{train}(\theta) ≈Jtrain(θ)) | 缓慢减小 (仍与 J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ)有较大差距,但差距随着 m m m的增大减小) |
5 决定接下来做什么
使用问题 | 算法改进(绘制并观察学习曲线) |
---|---|
高偏差 | 3. 获取更多特征 4. 增加多项式特征 5.2 减小 λ \lambda λ |
高方差 | 1. 使用更多训练样本 2. 尝试选用更少特征 5.1 增大 λ \lambda λ |