机器学习笔记(7)— 学习率、特征工程、多项式回归

目录

  • 判断梯度下降是否收敛
  • 如何设置学习率
  • 特征工程
  • 多项式回归

判断梯度下降是否收敛

机器学习笔记(7)— 学习率、特征工程、多项式回归_第1张图片
梯度下降的任务是找到能够使代价函数J最小的参数w和b,通常做法是绘制代价函数图(通过训练集计算出的),并且标出梯度下降每次迭代时J的值
此图中的横轴是梯度下降的迭代次数(不是w或b),这条曲线也被称为学习曲线,在粉点处意味着梯度下降迭代了100次,参数w和b也同步更新了100次,紫色点迭代了200次
如果梯度下降运行正常,在每次迭代后代价J应该会降低,如果迭代后反而上升了,说明学习率α太大,或程序里有bug
当迭代到300次左右时,代价J趋于稳定,不再减少太多,400次时更加平缓,这意味着梯度下降应该已经收敛,因为曲线不再下降
不同的场景中,梯度下降的收敛速度可能有很大差异,有可能30次,有可能一万次才能收敛
我们很难事先知道梯度下降要经过多少次迭代才能收敛,可以先画个学习曲线图。
另一种帮助你决定什么时候完成模型训练的方法是使用自动收敛测试,用ε表示一个小数字变量,比如0.001,如果代价函数J在一次迭代中减少的量小于这个数,就可以说明收敛了,收敛是指找到了参数w和b接近J的最小可能值情况,但是选出正确的ε是很困难的
实际上作者更倾向于看左边的图,而不是依赖于自动收敛测试

如何设置学习率

机器学习笔记(7)— 学习率、特征工程、多项式回归_第2张图片
上图的代价-迭代次数图,如果波动,说明代码中可能有bug或者学习率太大导致,如果每次迭代后都增加,说明学习率太大导致,都可以使用小的学习率解决,也可能是迭代时的符号问题所致,要使用负号
正确实现梯度下降的一个调试技巧是,在学习率α足够小的前期下,每一次迭代,代价函数都应该减小
一个重要的权衡是,如果学习率太小,梯度下降需要多次迭代才能收敛
机器学习笔记(7)— 学习率、特征工程、多项式回归_第3张图片
可以尝试使用多个α的值,查看学习曲线,选择能快速且持续降低α的值

特征工程

特征的选取对学习算法性能有很大影响,选择或输入合适的输入特征才是让算法正常工作的关键步骤
机器学习笔记(7)— 学习率、特征工程、多项式回归_第4张图片
假设房子有两个特征x1是房屋所在地块宽度,x2是地块的深度,假设房子建在长方形土地上
建立的模型是f(x)=w1x1+w2x2+b,但是面积是长乘以宽,用面积会更能预测价格,相比于分开的长度和宽度,所以可以定义一个新特征x3=x1x2,x3是面积
这样就可以得到一个新的模型,这样模型就可以选择参数w1、w2、w3
在特征工程中,可以去设计新的特征,通常通过变换或合并问题的原始特征,使其帮助算法更简单的做出准确预测,有时通过设计新特征,可能会得到一个更好的模型
这就是特征工程的一个特色,不仅帮你拟合直线,甚至曲线,非线性函数

多项式回归

机器学习笔记(7)— 学习率、特征工程、多项式回归_第5张图片
假设有个房屋数据集,特征x是面积,可以看出直线无法很好的拟合这个数据集,也许是包含二次项的模型才能拟合,但是二次函数可能最后会下降,我们不希望如此,所以加上3次项,显然紫色的线对应的模型更符合数据分布,因为房屋的价格最终会随着房屋的大小的增加而上升,第一个特征是大小,第二个特征是大小的平方,第三个特征是大小的平方
如果创造的特征是原始特征的幂,特征缩放就会很重要
机器学习笔记(7)— 学习率、特征工程、多项式回归_第6张图片
也可以使用平方根,如蓝色的线,随着x的增加,曲线的陡峭程度不断下降,但是肯定不会变平,也不会下降,以一个接近于平缓的曲线上升

你可能感兴趣的:(机器学习,学习,回归)