机器学习笔记(四) 多变量线性回归

来源:互联网 发布:按揭贷款月供怎么算法 编辑:程序博客网 时间:2024/05/16 19:22

1.多维特征

   以前我们谈到的变量只有一个,单个特征的训练样本,单个特征的表达式。

   以房价的预测举例,特征除了房屋的大小,还可以有房间数,楼层数,房龄等特征。


   一些特殊字母的定义:

   

   假设函数不再是单变量线性回归时的函数:hθ(x)=θ0+θ1x

   而是:hθ(x)=θ0+θ1x1+θ2x2+...+θnxn

   为了方便,我们令x0=1,那么公式就可以写为:hθ(x)=θTx   (θ和x都是向量,这里是θ的转置)



2.多变量线性回归的梯度下降

   假设函数:hθ(x)=θTx=θ0+θ1x1+θ2x2+...+θnxn

   代价函数:J(θ)=J(θ0,θ1,...,θn)=1/2m ∑(hθ(x(i))−y(i))2

   梯度下降算法:



   对J(θ)求导,可以得:

   n=1时,单变量梯度下降算法:



   n>1时,多变量梯度下降算法:




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

   目的:确保特征在一个相近的范围内。

   还是以房价的问题举例:


   对应的J(θ)如下,在进行梯度下降的时候,梯度的方向偏离最小值,走很多弯路。



   特征归一化:除以每组特征的最大值。



   得到J(θ)如下,每一步梯度的方向基本指向最小值。


   

   我们的目标是使每一个特征值都近似落在【-1,1】之间,当然是近似,在接近的范围内基本上都可以接收,但是范围太大不行。

   均值归一化:用Xi-Ui代替Xi,使特征的近似值为0,X0=1我们不需要处理。均值归一化的公式是:xi←(xi−μi)/Si 。(Si是特征值的取值范围,最大值-最小值)

   上例用均值归一化计算:




4.梯度下降实践2:步长的选择

   

   上面是梯度下降算法,我们需要注意的是两个问题:

  (1)如何确保下降梯度算法正确工作;

  (2)如何选择正确的步长α;

    正确的步长很重要,他可以确保梯度下降收敛的关键点。保证梯度下降算法正确运行,需要保证J(θ)在每一步迭代中减小,如果减小的值小于很小的值ϵ,则收敛。

   


   如果梯度下降算法不能正常运行,就考虑用更小的步长α,但是如果α的值太小,梯度下降算法收敛会非常慢。

   总结一下,就是:

   (1)α太小,收敛速度太慢;

   (2)α太大,不能保证每一次迭代J(θ)会减小,也不能保证J(θ)会收敛。

   怎么选择α?我们有个经验:0.001,0.003,0.01,0.03,0.1,0.3,1.............后一个数约是前面一个数的三倍。



5.多项式回归

   继续以房价预测的问题举例:


   特征x1:frontage(宽度);特征x2:depth(深度)

   x1、x2也可以用一个特征值表示:area=frontage*depth(即h(x)=θ0+θ1 X,X是面积)。

   多项式回归:

   像下图,我们并不能用线性回归很好的拟合给定的样本点,所以可以采用多项式回归。



   对特征的选择,除了可以n次方外,也可以开根号,

   



6.正规方程

   背景:

   在微积分里,一元情况下,J(θ)=a*θ*θ+b*θ+c

   求导,令导数为零,dJ(θ)/dθ=...=0,即可得到θ。



   多变量线性回归中,求解思路相同:




   举个例子,接下来分析一个有四组特征的房价预测问题:(这里向量X0内元素值都为1)


   其中X是一个m*(n+1)的矩阵,y是m维的向量:

   我们可以得到正规方程:(这里直接给出了正规方程,并未给出如何得到,具体要查看线性代数里的知识)

   


   m个样本,n个特征,我们该如何选择梯度下降和正规方程?这两种方式都有自己的优缺点:

   梯度下降:

   需要选择合适的学习率α;

   迭代的次数非常多;

   n的数目比较大时,效果依然很好;

   时间复杂度是O (kn2);

   正规方程:

   不需要选择α;

   不需要迭代,一次就可以计算完成;

   n比较大时,会很慢;

   需要计算(XTX)−1,时间复杂度是O(n3);



7.矩阵不可逆的情况

   对于正规方程,若是(XTX)不可逆怎么办?出现这个情况有以下原因。

   (1)两个特征之间有着非常大的相关性,解决方法是去掉冗余的特征;

   (2)特征过多,比如说m<=n,解决方法是删掉一些特征。


阅读全文
0 0
原创粉丝点击