Andrew Ng机器学习之三 多变量线性回归

来源:互联网 发布:荣格心理学 知乎 编辑:程序博客网 时间:2024/06/05 05:32

1. 多维特征 (Multiple features)

  上一篇:单变量线性回归中只针对单个特征,如下图所示:
  这里写图片描述
  对于拥有多个特征的样本,比如在房价问题中,房子尺寸(size)、地理位置(Area)等多个特征都会最终影响房屋的实际价格,如下图所示:
  这里写图片描述
  现定义:
  n: 特征维度
  x(i): 第i个输入变量的所有特征,可以认为是一组特征向量,例如在房子尺寸(size)、年代(Age)组成的二元特征中,{100m2, 1970}这一组特征向量就是一个x
  x(i)j: 表示第i个训练样本的第j个特征值。例如上图中x(1)2为5。
  
  对于假设函数hθ(x),它不再是单变量线性回归时的hθ(x)=θ0+θ1x,而是:
  hθ(x)=θ0+θ1x1+θ2x2+...+θnxn
  方便起见,记x0=1,则多变量线性回归可以记作:
  hθ(x)=θTx
  

2.梯度下降算法在多变量线性回归中的应用(Gradient descent for multiple variables)

  假设函数(Hypothesis Function):
     hθ(x)=θTx=θ0+θ1x1+θ2x2+...+θnxn
  
  损失函数(Cost Function):
     J(θ)=J(θ0,θ1,...θn)=12mmi=1(hθ(x(i)y(i))2
   在多变量线性回归中,特征向量n>1,梯度下降算法如下:
   这里写图片描述

2.1 梯度下降实践一:特征归一化(Feature Scaling)

为啥要进行特征归一化呢?原因在于梯度下降算法需要使不同维度的向量构成的空间不那么扁,例如如果前一个特征的数据范围在[1-100]内,后一个特征范围在[1-10000],那么这两个特征组成的向量空间是一个椭圆(如图)。那么在使用梯度下降算法时,需要经过非常多次的迭代才能收敛。
这里写图片描述
解决方法是尝试将所有特征的尺度都尽量缩放到-1到+1之间,此过程即为特征归一化(Feature Scaling)
归一化方法多种多样,其中一种简易方法为均值归一化(Mean Normalization),即先求出均值,然后:
x(i)j=x(i)jmean(xj)max(xj)min(xj)

2.2 梯度下降实践二:学习速率(Learning Rate)

  梯度下降公式:
  θj:=θjαθjJ(θ)
  注意到其中的α了吗?它控制着梯度下降算法的步长,步长过大,可能跳过最优点,甚至可能使算法发散;步长过小,又会使算法收敛过于缓慢,因此α作为学习速率(Learning Rate)意义十分关键。
 因此如果梯度下降算法不能正确运行,常常是因为α选取过大造成的,那么如何正确的选取α呢?经验如下:
 ...,0.001,0.003,0.01,0.03,0.1,0.3,1,...

3. 特征及多项式回归(Features and polynomial regression)

特征选择: Ng给出的思路是:不一定要选择最直接的,全部的特征,而可以从已知的数据中选取对当前模型影响最大的一些特征,或者这些特征的组合。
例如:在对房价预测的模型中,已知条件有长度frontage和宽度depth, 实际特征选择中,不一定非得选择这两个数据,而是可以考虑二者的组合frontage×depth,即房屋的面积,同时根据实际考虑,可以加入所在地区Area
这里写图片描述

多项式回归:线性回归有时不能很好地拟合给定的样本点,例如:
这里写图片描述
这时候就需要使用多项式,如果要拟合该曲线,至少需要3次多项式,如:
θ0+θ1x+θ2x2+θ3x3
hθ(x)=θ0+θ1x1+θ2x2+θ3x3,其中x1=size,x2=(size)2,x3=(size)3,由此可见,如果size的范围在01000之间,(size)2在0-100,000之间,size3在0-109之间,因此Feature Scaling显得尤为重要。
  

4. 正规方程(Normal equation)

  之前讲到了梯度下降(Gradient descent),它需要设置初始的θ,并且逐步迭代,最终得出结果,缺点是繁琐,需要初始值,而且容易陷入局部极小值。
  事实上针对线性回归,还有一种正规方程(Normal equation)的解法,看Ng的例子:
  这里写图片描述
  
  直接计算:
  θ=(XTX)1XTy

4.1 梯度下降 VS 正规方程

Gradient Descent Normal Equation 需要设置初始的θ值 不需要 需要选择学习速率α 不需要选择学习速率 需要很多次迭代 无需迭代,需要计算(XTX)1n(特征种类)特别大的时候,依然适用 n特别大时,速率很慢

总结就是:特征数量n不大时,可以选用正规方程,当特征较大(例如大于一万时),建议使用梯度下降。

0 0
原创粉丝点击