9.应用机器学习的建议(Advice for Applying Machine Learning)
文章目录
本章编程作业及代码实现部分见:Python实现正则化的线性回归和偏差/方差
9.1 决定下一步做什么
本部分内容的目的是确保你在设计机器学习的系统时,明白怎样选择一条最合适、最正确的道路。具体来讲,我将重点关注的问题是假如你在开发一个机器学习系统,或者想试着改进一个机器学习系统的性能,你应如何决定接下来应该选择哪条道路?仍然使用预测房价的学习例子,假如你已经完成了正则化线性回归,也就是最小化代价函数 J J J的值,在你得到你的学习参数以后,如果你要将你的假设函数放到一组新的房屋样本上进行测试,假如说你发现在预测房价时产生了巨大的误差,现在你的问题是要想改进这个算法,接下来应该怎么办?
实际上你可以想出很多种方法来改进这个算法的性能,其中一种办法是使用更多的训练样本。遗憾的是,我看到好多人花费了好多时间想收集更多的训练样本。他们总认为,要是我有两倍甚至十倍数量的训练数据,那就一定会解决问题的是吧?但有时候获得更多的训练数据实际上并没有作用。
另一个方法,你也许能想到的是尝试选用更少的特征集。因此如果你有一系列特征比如 x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3等等。也许有很多特征,你可以花一点时间从这些特征中仔细挑选一小部分来防止过拟合。或者也许你需要用更多的特征,目前的特征集对你来讲并不是很有帮助,你希望从获取更多特征的角度来收集更多的数据。同样的道理,我们非常希望在花费大量时间完成这些工作之前,我们就能知道其效果如何。我们也可以尝试增加多项式特征的方法,比如 x 1 x_1 x1的平方, x