应用机器学习的建议

1.预测中的错误解决方法

  • Getting more training examples
  • Trying smaller sets of features
  • Trying additional features
  • Trying polynomial features
  • Increasing or decreasing λ

2.评估

  假说评估

 1.a given dataset of training examples  ---分为--->  a training set and a test set.

 2.Learn Θ and minimize Jtrain(Θ) using the training set

 3.Compute the test set error Jtest(Θ)

  测试集误差

  • 测试集的代价函数:

  

  • 测试集误差(取平均值):

  

3.训练/交叉验证/测试集

  • 学习算法仅对训练集拟合很好不能说明该算法很好
  • 训练集的误差比其它数据集的误差都要小
  • 为了选择假说,可以测试不同的多项式维度d来观察误差结果

   ------------------------------------------------------------------------------------------------------------------------

  • 不选用验证集的方法:(不好)

  

   将参数应用到其它数据集,误差会更大。

  • 使用交叉验证集

   将交叉验证集( Cross Validation Set)作为训练d的中间集,这样的话我们得到的误差就不是最优化训练集的误差了。

   通常将数据集这样划分:

   Training set: 60%

   Cross validation set: 20%

   Test set: 20%

   方法:(CV集上不用正规化)

  

      note: CV集选择d时,lambda值不能变了。

4.偏差/方差诊断

     多项式维度d与假说过拟合,欠拟合的关系

  • High bias (underfitting): Jtrain(Θ) 和 JCV(Θ) 都会很高. 而且, JCV(Θ)Jtrain(Θ).

    High variance (overfitting)Jtrain(Θ) 会很低,JCV(Θ) 会大于 Jtrain(Θ).

   

  ----------------------------------------------------------------------------------------------------------

  正规化与假说过拟合,欠拟合的关系

  • Low λJtrain(Θ) 很低,JCV(Θ) 很高(high variance/overfitting).

    Intermediate λJtrain(Θ) and JCV(Θ) 有些低, Jtrain(Θ)JCV(Θ).

    Large λJtrain(Θ) 和 JCV(Θ) 都很高(underfitting/high bias)

  ---------------------------------------------------------------------------------------------------------
   为了选择d和正规化项 λ,我们需要

  1. 做一张λ 的表 (i.e. λ{0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24});
  2. 选择一个λ 去计算;
  3. 做一个模型集(假说函数集)比如利用多项式维度d做的一个集合或者其他;
  4. 选一个模型去学习Θ;
  5. 用选择的λ 和选择的模型计算的Jtrain(Θ)去学习参数Θ  (this will learn Θ for the next step);
  6. 在Jtrain(Θ)上以学习到的 Θ (以λ 计算的 ) 为参数用无正规化方式( λ = 0)计算训练集误差;
  7. 在JCV(Θ)上以学习到的 Θ (以λ 计算的 ) 为参数用无正规化方式( λ = 0)计算交叉验证集误差;
  8. 在整个模型集和lambda集上都进行这些步骤,然后选择在交叉验证集上产生误差最小的集合;
  9. 现在可以用(λ x Cost Jtrain(Θ)) , (λ x Cost JCV(Θ))像上面那样做图,可视化来帮助理解自己的决策;
  10. 现在用最好的组合 Θ ,λ, 应用在Jtest(Θ) 去看是否有很好的泛化能力.
  11. 为了决定哪个多项式维度值和 λ用起来是最好的, 我们可以用下面讲的学习曲线.

5.学习曲线

  • 如果只有3个点,很容易找到正好过它们的多项式函数,但随着训练集的增大,多项式函数的误差也会随之增大,在训练集数量达到某个值之后,误差趋平。  
  •  高偏差:得到更多训练集表现不会变好.

    少量训练集: Jtrain(Θ)低,JCV(Θ) 高.

    大量训练集: Jtrain(Θ),JCV(Θ) 都高且Jtrain(Θ)JCV(Θ).

  • 高方差:得到更多训练集会表现更好.

   少量训练集Jtrain(Θ)低,JCV(Θ) 高.

   大量训练集: 随着训练集增大,Jtrain(Θ) 增加,JCV(Θ) 不趋平减少. 而且, Jtrain(Θ)<JCV(Θ)但它们的差距依然会比较明显.

 

     

6.解决方法

 Getting more training examples,Trying smaller sets of features,Increasing λ ---> Fixes high variance

 Adding features,Adding polynomial features,Decreasing λ ---> Fixes high bias

 

7.神经网络诊断

   参数少,欠拟合,计算量小,反之同样道理,过拟合加λ,比较好的步骤是开始的时候用一层中间层,然后用交叉验证集在许多中间层上训练。

8.模型选择

  • 选择 M 为多项式的阶.
  • 如何确定留下模型中的哪个参数 Θ (模型选择)?

  1. 得到更多数据(很难).
  2. 选择没有过拟合最好的拟合数据的模型(很难).
  3. 用正规化减少过拟合.

   ----------------------------------------------------------------------------------------------------------

  Bias: 近似误差 (期望值和最优值之间)

  Jtrain(Θ) and JCV(Θ) 都高,Jtrain(Θ)JCV(Θ)

  Variance: 估计误差

  Jtrain(Θ) 低,JCV(Θ)Jtrain(Θ)

  Intuition for the bias-variance trade-off:

  Complex model => sensitive to data => much affected by changes in X => high variance, low bias.

  Simple model => more rigid => does not change as much with changes in X => low variance, high bias.

  One of the most important goals in learning: finding a model that is just right in the bias-variance trade-off.

   其它还有,多项式阶数,λ等。 

 

 

转载于:https://www.cnblogs.com/cherry-yue/p/5904195.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值