您的位置:首页 > 其它

Linear regression with multiple variables(多特征值的线性回归)

2014-10-09 13:56 232 查看
背景:

在实际情况下,房屋的价格不是单单与一个特征值相关,其往往更像下图这种情况:



它与房子的大小、房间的数量、楼层的数量、房屋的年龄等一系列因素有关。

所以其假设函数可能是以下形式:



形如上式:当假设函数预测者与多个features相关时,梯度下降函数编写如下:



多数情况下,X0会等于1,即假设函数通常会有一个常数项

下边是相应的梯度下降函数:



当feature的数量为1时:



当feature的数量>1时:



通常情况下theta0的所对应的X0通常为常数。

线性回归在多特征值的情况下,theta局部最佳值的寻找技巧:



左边情况,在对theta进行梯度下降计算时



由于

的值过大,所以导致寻找theta的路径过于抖动,所花时间过长,就如上图左边所示。

而右图情况当确定各个feature的范围时,我们对x/scale,其就会变成个一个绝对值小于等于1的数字,这样寻找theta局部最优解时所花费的时间就要小很多。

所以我们的思想是:



在不影响正确结果的情况下,将x的范围尽量确定在一个比较小的范围内。

所用的方法为:mean normalization(均值归一化/特征缩放)



方法说明: 我们用 (x-average value of x)/(range ofx) range of x = max of x – min of x 。

技巧2:关于下降速率 alpha的技巧

学习速率也是保证梯度下降算法能快速准确聚合的一个关键因素。



确保梯度下降算法正常运行的技巧

如何选择正确的学习速率alpha.



如果学习速率选择正确的话,cost function在每次迭代以后都会减少,当迭代到一定地步的时候cost function J的大小将基本保持不变。确定一个阀值是关键并且是非常困难的,即当每次减少的数量小于多少时我们就认定J每次减少的大小可以忽略不计。

一些表现出costfunction没有正常工作的情况:



当J的值在每次迭代后,它的值持续增加说明alpha没有正确选择,正如上图右边所示,所以我们要做的是缩小alpha的值。

还有一次情况,当alpha的值选择的过于小的时候,cost function J需要花费过长时间去收敛到最低点。

总结:



如果学习速率选择过小的话,聚合过程将是一个非常漫长的过程,如果学习速率选择过大的话可能会出现J会随着每次迭代变得越来越大,Ng老师的建议是

措施按数量级选择alpha进行实验。每次十倍地增长alpha的值,多次试验选择最适合的alpha值。

Features andpolynomial regression(特征值和多项式回归)

根据实际情况,假设等式可能是一次方可能是二次方等等

Normal equation:

一种更好的方式寻找参数theta



Normal equation算法:

其主要用到的是线性代数求逆矩阵的思想。



Gradient descent算法和normal equation 算法比较:



当feature非常大,Ng老师给的建议是如果feature的纬度是100000时可能就要选择gradient descent 算法,因为矩阵运算也是一个比较费cpu和内存的运算。

Normal equationand non-invertibility(正规方程和不可逆性):

这节课讲的正好是我的迷惑所在,可能是当时大一的线性代数没有学好吧…好,让我们来看一下不可逆性:

在什么情况下可能出现X’X不可逆?



但是Ng老师指出,我们在训练数据的时候所用的是伪逆(另一种求逆矩阵的库),所以一般不会出问题(待学习)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐