运用机器学习的建议

调试一个算法

假设你实现了一个用来预测房价的线性回归算法,你的目的是最小化代价函数

\[J\left( \theta  \right) = \frac{1}{{2m}}\left[ {\sum\limits_{i = 1}^m {{{\left( {{h_\theta }\left( {{x^{\left( i \right)}}} \right) - {y^{\left( i \right)}}} \right)}^2}}  + \lambda \sum\limits_{j = 1}^n {\theta _j^2} } \right]\]

然而,当你用新的数据去测试你的hθ(x)时,你发现你的预测结果误差很大以至于无法接受,你接下来该怎么办?

以下有几种方案

  • 获取跟多训练样本---->解决“high variance”
  • 选择减少特征---->解决“high variance”
  • 选择增加特征---->解决“high bias”
  • 增加多项式特征(x12, x22, x1x2, etc.)---->解决“high bias”
  • 增加λ---->解决“high variance”
  • 减小λ---->解决“high bias”

人们往往花费很多的时间去做自己认为对的方法改善算法的结果,其实有一些简单的方法就可以确定问题出在哪里

机器学习诊断(Machine learning diagnostic)

Diagnostic: A test that you can run to gain insight what is/isn't working a learning algorithm, and gain guidance as to how best to improve ites performance.

Diagnostics can take time to implement, but doing so can be a very good use of your time.

诊断:你可以运行并从内部知道一个学习算法为什么可以/不可以正常工作,并获得有关如何最好地提高它的性能的指导。

诊断可能需要一段时间才能实现,但这样做可以很好地利用你的时间。

 

posted @ 2018-10-31 15:13  qkloveslife  阅读(238)  评论(0编辑  收藏  举报