应用机器学习的建议(Advice for Applying Machine Learning)

决定下一步做什么

    总是把时间浪费在毫无意义的尝试上。所以,是使用更多的训练

样本:

  1. 获得更多的训练实例——通常是有效的,但代价较大,下面的方法也可能有效,可
    考虑先采用下面的几种方法。
  2. 尝试减少特征的数量
  3. 尝试获得更多的特征
  4. 尝试增加多项式特征
  5. 尝试减少正则化程度 λ
  6. 尝试增加正则化程度 λ

评估一个假设

    我们将数据分成训练集和测试集,通常用 70%的数据作为训

练集,用剩下 30%的数据作为测试集。很重要的一点是训练集和测试集均要含有各种类型的数据,通常我们要对数据进行“洗牌”,然后再分成训练集和测试集。

  1. 对于线性回归模型,我们利用测试集数据计算代价函数 J
  2. 对于逻辑回归模型,我们除了可以利用测试数据集来计算代价函数外:
    函数误分类的比率,对于每一个测试集实例,计算:
    函数
    然后对计算结果求平均。

模型选择和交叉验证集

模型选择的方法为:

  1. 使用训练集训练出 10 个模型
  2. 用 10 个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值)
  3. 选取代价函数值最小的模型
  4. 用步骤 3 中选出的模型对测试集计算得出推广误差(代价函数的值)

诊断偏差和方差

训练集误差和交叉验证集误差近似时:偏差/欠拟合
交叉验证集误差远大于训练集误差时:方差/过拟合

正则化和偏差/方差

  1. 使用训练集训练出 12 个不同程度正则化的模型
  2. 用 12 模型分别对交叉验证集计算的出交叉验证误差
  3. 选择得出交叉验证误差最小的模型
  4. 运用步骤 3 中选出模型对测试集计算得出推广误差,我们也可以同时将训练集和交叉验证集模型的代价函数误差与 λ 的值绘制在一张图表上:
    图表
    • 当 λ 较小时,训练集误差较小(过拟合)而交叉验证集误差较大
    • 随着 λ 的增加,训练集误差不断增加(欠拟合),而交叉验证集误差则是先减小后增加

学习曲线

学习曲线就是一种很好的工具,我经常使用学习曲线来判断某一个学习算法是否处于偏差、方差问题。学习曲线是学习算法的一个很好的合理检验(sanity check)。学习曲线是将训练集误差和交叉验证集误差作为训练集实例数量(m)的函数绘制的图表。

决定下一步做什么

有些方法可能改进我们学习算法的效果,有些方法则可能是徒劳。

  1. 获得更多的训练实例——解决高方差
  2. 尝试减少特征的数量——解决高方差
  3. 尝试获得更多的特征——解决高偏差
  4. 尝试增加多项式特征——解决高偏差
  5. 尝试减少正则化程度 λ——解决高偏差
  6. 尝试增加正则化程度 λ——解决高方差
    神经网络的方差和偏差:
    神经网络:通常选择较大的神经网络并采用正则化处理会比采用较小的神经网络效果要好。
    你可以充分运用以上这些内容来判断哪些途径可能是有帮助的。而哪
    些方法可能是无意义的。如果你理解了以上几节视频中介绍的内容,并且懂得如何运用。那么你已经可以使用机器学习方法有效的解决实际问题了。你也能像硅谷的大部分机器学习从业者一样,他们每天的工作就是使用这些学习算法来解决众多实际问题。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值