- 常见的错误的学习曲线图(上方两个)
- 当关于迭代次数的学习曲线图,出现波浪型或向上递增型,表示梯度下降算法出错
- 该情况可由,学习率α过大,或代码有bug导致
- 常用的调试方法:
- 选择一个非常非常小的学习率α,来查看学习曲线是否还是有误,即在某次迭代后增加,即出现波浪型或向上递增型。
- 若学习曲线正常,即保持递减。表示之前的学习率α过大。若学习曲线依旧有误,则表示代码有bug
- 注意:将学习率α设为非常非常小的数,仅用于调试,并不表示此时的α为梯度下降算法的最有效的学习率α。因为当学习率太小时,梯度下降算法可能会需要迭代很多次才能收敛。
- 综上,如图所示依次选择学习率α的值
- 从0.001开始,依次乘3,选取α的值,直到找到一个太小的α值,让梯度下降算法进行很多次迭代才能收敛,也找到一个太大的α值,让梯度下降算法无法收敛,即学习曲线有误。最后选择一个尽可能大的α值,或者选择一个比最大可能α值稍小的值。通常,这样选择的α值为合适的学习率
- 特征工程
- 用知识或直觉来设计新特征,通常采用变换或组合原始特征的方法,来使学习算法更容易做出准确的预测
- 根据对应用场景的见解来定义新的特征,而不是仅仅采用碰巧拥有的特征,可能可以获得更好的模型。不仅可以对数据,拟合直线,也可以拟合曲线,非线性函数。
- 多项式回归
- 线性回归并不适用所有模型,有时我们需要用曲线来拟合我们的数据
- 如图,使用多元线性回归,特征工程的思想来提出的多项式回归新算法,他可以拟合曲线,非线性函数
- 如果我们采用x,x²,x³作为特征,同时正在使用梯度下降算法,那么特征缩放是十分必要的,因为特征之间的可能值范围差距过大
- 我们也可以使用x,√x作为特征,在特征的可能值范围很小时,也许可以不用特征缩放。
- 综上:使用特征工程和多元线性回归,我们可以获得多种模型,而到底使用哪一种,后面会学。