吴恩达机器学习day4
·
一、学习率的选择
我们通过什么判断损失J收敛了,梯度下降完成了呢?
这里有一个学习曲线,也就是损失 J关于迭代次数的曲线:

当损失不再下降的时候,就说明不需要再迭代了,损失已经收敛了。
因此,当我们想知道训练应该选择多大的学习率,可以先做一个测试:
众所周知:
当学习率过小,梯度下降的速度会很缓慢,曲线会非常平缓地下降
当学习率过大,梯度下降会在一开始非常快,后面就会反复增大和减小
我们在测试的时候可以先从很小的学习率开始,比如0.001,然后三倍三倍地增大,0.003,0.01...
找到一个刚刚好过大的值,也就是找到上限,这个上限会导致J震荡。最后选一个比上限稍微小的值就好啦。
二、特征工程
1.基于问题挖掘新特征
我们继续用房价来举例子
比如现在给出两个特征,一个是房子的邻街长度w1,一个是房子的深度w2

那么房价可以表示成y=w1*x1+w2*x2+b
然而我们发现,房子的面积s=x1*x2,那么我们可以定义一个新特征W3为占地面积,x3=x1*x2
那么此时,预测房价y=w1*x1+w2*x2+w3*x3+b
总结:你可以利用你对问题的知识和直觉来创建新的特征,这往往能够帮助模型更好地拟合问题。
2.基于趋势创建新特征
我们之前都是线性回归,如果我们遇到的数据是非线性函数,那就需要用到多项式回归
假设我们现在给出的数据集分布是这样的:

这显然不像是线性的函数,那我们就可以基于给的size特征,多添加一些别的特征,以拟合这个趋势
比如,我们可以添加x的平方,x的三次方来拟合:
不过这个时候的特征缩放就非常重要了,因为经过平方、三次方,它们的取值范围会相差非常大
亦或者添加根号x来拟合:
更多推荐


所有评论(0)