您的位置:首页 > 其它

多变量线性回归

2016-04-09 14:04 267 查看

多维特征

上次我们了解了单变量的线性回归,现在我们对房价模型增加更多的特性,如房间数、楼层数、房龄等特征,构成一个含有多变量的模型,模型中特征表示为





在添加了多个特征后,我们也要增加一些注释:

n 代表特征数目


 表示第i个训练样本的所有特征,就是特征矩阵中的第i行,是一个向量(vector) 

       比如上面的



 表示第i个训练样本的第j个特征,就是特征矩阵中的第i行的第j个特征。

       比如上面的

 

对于假设函数h(hypothesis function),

 ,为了简化公式,记

,则公式转化为:



这时参数Θ是一个n+1维的向量,任何一个训练样本也是n+1维向量,特征矩阵X的维度是m×(n+1)。所以我们可以把公式化简为:

,上标T代表转置。

多变量梯度下降

与单变量线性回归一样,我们也构建一个代价函数:



其中,


我们的目标与单变量线性回归一样,找出使代价函数最小的那一组参数。
多变量线性回归的梯度下降算法:



求导后得到:



当n≥1时,



注意这里的参数也是同步更新的。

梯度下降实践1:特征缩放

在房价问题中,如果我只使用两个特征,房屋尺寸和房间数量,房屋尺寸的取值范围为0-2000,而房间数量取值是0-5,当以这两个特征作为坐标绘图时:



我们可以看到图像很扁,梯度下降算法需要多次迭代才能收敛。
而这问题的解决方法就是确保所有特征的相似的尺度里,如使每一个特征值都缩放到-1到1之间。



我们使用的方法就是均值归一化(mean normalization):



其中,

是平均值,

可以是标准差,也可以是特征的取值范围(最大值-最小值)。

梯度下降实践2:学习率

如何选择正确的学习率很重要,它也是确保梯度下降算法收敛的关键。
梯度下降算法收敛所需要的迭代次数根据模型不同而不同,但我们可以绘制迭代次数和代价函数的图标来观察算法何时收敛。



如果某一步减少的值小于某个很小的值∈,那么我们认为收敛。

梯度下降算法的每次迭代受到学习率的影响,如果学习率太小,那么要达到收敛的迭代次数会非常高;如果学习率太大,不能保证每次迭代都减小代价函数,可能会越过局部最小值导致无法收敛。

学习率选择的经验是:

 ,通常后一个尝试的数是前一个数的3倍。

特征与多项式回归

房价预测问题:





x1=frontage(临街宽度),x2=depth(纵向深度),x=frontage×depth(面积),那么


很多时候,线性回归不能很好的拟合样本,所以我们需要曲线,如二次方模型

或三次方模型

,或者开根号也可以。



通常我们需要观察数据然后再决定尝试什么模型。
另外,我们还可以令:



,从而将模型转化为线性回归模型。



正规方程(normal equation)

相对于梯度下降算法,正规方程使用分析的方法直接解决Θ。
正规方程:
1维时,Θ∈R:


    

找出使代价函数最小值的参数:



然后得到Θ,



同理,在多变量线性回归中,Θ∈

,代价函数是:



求Θ得思路仍然是:



对于4组特征(m=4)的房价预测问题:







则利用正规方程求出的向量:

,其中上标T代表转置,上标-1代表矩阵的逆。
运用正规方程求解参数:



对于正规方程,如果

不可逆,那么:
(1)去掉冗余的特征(线性相关)
    如以平方英尺为单位的面积x1余以平方米为单位的x2,x1和x2是线性相关的。
(2)过多特征时,删掉一些特征或者正规化(regularization)。

梯度下降与正规方程比较



参考资料: Machine Learning——Andrew Ng(Coursera)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息