week2_多变量线性回归

多变量线性回归(Linear Regression with Multiple Variables)

1.多特征(Multiple Features)

对于一个要度量的对象,一般来说会有不同维度的多个特征。比如之前的房屋价格预测例子中,除了房屋的面积大小,可能还有房屋的年限、房屋的层数等等其他特征


多变量假设函数 h h h表示为: h θ h_{\theta} hθ= θ 0 \theta_0 θ0+ θ 1 \theta_1 θ1 x 1 x_1 x1+ θ 2 \theta_2 θ2 x 2 x_2 x2+…+ θ n \theta_n θn x n x_n xn

这里由于特征不再只有一个,引入一些新的记号

n n n:特征的总数
x ( i ) x^{(i)} x(i): 代表样本矩阵中第 i i i行,也就是第 i i i个训练实例。
x j ( i ) x^{(i)}_j xj(i)代表样本矩阵中第 i i i行的第 j j j列,也就是第 i i i个训练实例的第 j j j个特征。

其中参数向量的维度是 n n n+1,给特征向量添加 x 0 x_0 x0,其维度也变成 n n n+1维,则假设函数可以用矩阵表达为:

h θ ( x ) = [ θ 0 θ 1 . . . θ n ] [ x 0 x 1 . . . x n ] = θ T x h_\theta(x)= \begin{bmatrix} \theta_0 & \theta_1 &...&\theta_n \end{bmatrix} \begin{bmatrix} x_0& \\ x_1&\\ ...&\\ x_n& \end{bmatrix} =\theta^Tx hθ(x)=[θ0θ1...θn]x0x1...xn=θTx

θ T \theta^T θT: θ \theta θ矩阵的转置
s s s:某个样本的特征向量。n+1维
x 0 x_0 x0:假设 x 0 ( i ) x^{(i)}_0 x0(i)=1

2.多变量梯度下降(Gradient Descent for Multiple Variable)

多变量代价函数类似与单变量代价函数,即

J ( θ 0 , θ 1 , . . . , θ n ) J(\theta_0,\theta_1,...,\theta_n) J(θ0,θ1,...,θn)= 1 2 m \frac 1 {2m} 2m1 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 \displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2 i=1m(hθ(x(i))y(i))2,其中 h θ ( x ) = θ T x h_\theta(x)=\theta^Tx hθ(x)=θTx

梯度下降对于最小化代价函数的通用性,则多变量梯度下降公式即
r e p e a t u n t i l c o n v e r g e n c e : { repeat until convergence:\{ repeatuntilconvergence:{
θ j : = θ j − α ∂ ∂ θ 1 ( θ 0 , θ 1 , . . . , θ n ) \theta_j:=\theta_j-\alpha\frac{\partial }{\partial \theta_1}(\theta_0,\theta_1,...,\theta_n) θj:=θjαθ1(θ0,θ1,...,θn)
} \} }
解出偏导得:
r e p e a t u n t i l c o n v e r g e n c e : { repeat until convergence:\{ repeatuntilconvergence:{
θ j : = θ j − α 1 m \theta_j:=\theta_j -\alpha \frac 1 m θj:=θjαm1 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i ) \displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_j^{(i)} i=1m(hθ(x(i))y(i))xj(i) f o r j : = 0 , 1 , 2 , . . . n for \qquad j:=0,1,2,...n forj:=0,1,2,...n
} \} }

可展开为:
r e p e a t u n t i l c o n v e r g e n c e : { repeat until convergence:\{ repeatuntilconvergence:{
θ 0 : = θ 0 − α 1 m \theta_0:=\theta_0 -\alpha \frac 1 m θ0:=θ0αm1 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x 0 ( i ) \displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_0^{(i)} i=1m(hθ(x(i))y(i))x0(i)
θ 1 : = θ 1 − α 1 m \theta_1:=\theta_1 -\alpha \frac 1 m θ1:=θ1αm1 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x 1 ( i ) \displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_1^{(i)} i=1m(hθ(x(i))y(i))x1(i)
θ 2 : = θ 2 − α 1 m \theta_2:=\theta_2 -\alpha \frac 1 m θ2:=θ2αm1 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x 2 ( i ) \displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_2^{(i)} i=1m(hθ(x(i))y(i))x2(i)

θ n : = θ n − α 1 m \theta_n:=\theta_n -\alpha \frac 1 m θn:=θnαm1 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x n ( i ) \displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_n^{(i)} i=1m(hθ(x(i))y(i))xn(i)
} \} }

同单变量梯度下降一样,计算时需要同时更新所有参数。

3.特征值缩放(Gradient Descent in Practice I - Feature Scaling)

在应用梯度下降算法实践时,由于各特征值的取值范围不同,可能会影响代价函数收敛速度
以房价预测问题为例,这里选取房屋面积大小和房间数量这两个特征。
下图中,左图是以原始数据绘制的代价函数轮廓图,右图为采用特征缩放(都除以最大值)后图像。左图中呈现的图像较扁震荡较大,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。
在这里插入图片描述
为了加快梯度下降的收敛速度,采用特征缩放的方式,使得特征值的范围尽量一致
方法主要有2种特征缩放(feature scaling) and 均值归一化(mean normalization)
特征缩放:每个训练实例的特征值都除以该特征值中最大的数;
均值归一化
x i = x i − a v e r a g e ( x ) m a x i m u m ( x ) − m i n i m u m ( x ) x_i=\frac {x_i-average(x)} {maximum(x)-minimum(x)} xi=maximum(x)minimum(x)xiaverage(x) x i ∈ ( − 1 , 1 ) \qquad x_i \isin (-1,1) xi(1,1)

另外注意,一旦采用特征缩放,我们就需对所有的输入采用特征缩放,包括训练集、测试集、预测输入等。

4.学习速率(Gradient Descent in Practice II - Learning Rate)

通常,有两种方法来确定函数是否收敛

  • 多次迭代收敛法
    无法确定需要多少次迭代
    较易绘制关于迭代次数的图像
    根据图像易预测所需的迭代次数
    在这里插入图片描述

  • 自动化测试收敛法(比较阈值)
    不易选取阈值
    代价函数近乎直线时无法确定收敛情况

因为自动化测试收敛法需要预判代价函数的的参考值,但对于每个项目并不相同,选取参考值很困难。因此一般借助图形发现代价函数的趋势,调整学习速率 α \alpha α,随着曲线的下降,每次取更小的学习速率,逐渐逼近最小值。

对于学习速率 α \alpha α,一般上图展现的为适中情况下图中,左图可能表明 α \alpha α过大,代价函数在跳跃,无法收敛;右图可能表明 α \alpha α过小,代价函数收敛的太慢。代价函数在迭代会增加影响效率。在实际使用时,可以不断改变 α \alpha α值,绘制并观察图像,并以此来确定合适的学习速率。
在这里插入图片描述

5.特征处理和多项式回归(Features and Polynomial Regression)

5.1特征处理

在特征选取时,我们也可以自己归纳总结,定义一个新的特征,用来取代拆分旧的一个或多个特征。比如,对于房屋面积特征来说,我们可以将其拆分为长度和宽度两个特征,反之,我们也可以合并长度和宽度这两个特征为面积这一个特征。如能减少相关性很高特征就能减少计算梯度下降时候的运算,提高效率。

5.2多项式回归

对比week1单变量线性拟合
线性回归只能以直线来对数据进行拟合,有时候需要使用曲线来对数据进行拟合,即多项式回归(Polynomial Regression)。下面以单变量为例说明多项式拟合曲线的问题
在这里插入图片描述
在使用多项式回归时,要记住非常有必要进行特征缩放,比如 的范围为 1-1000,那么 的范围则为 1- 1000000,不适用特征缩放的话,范围更有不一致,也更易影响效率。还需要注意多项式如果项数太多虽然拟合效果更好了,但是增加了计算量。

6.正规方程(Normal Equation)

对于一些线性回归问题来说,正规方程法给出了一个更好的解决问题的方式。
正规方程法,即令 ∂ ∂ θ j J ( θ j ) = 0 \frac{\partial }{\partial \theta_j}J(\theta_j)=0 θjJ(θj)=0 ,通过解析函数的方式直接计算得出参数向量的值 θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy
比较正规方程法和梯度下降算法

条件梯度下降正规方程
是否需要选取学习速率 α \alpha α需要不需要
是否需要迭代运算需要不需要
特征量较多时使用, O ( k n 2 ) O(kn^2) O(kn2)不适用, ( X T X ) − 1 (X^TX)^{-1} (XTX)1复杂度 O ( n 3 ) O(n^3) O(n3)
适用范围各种模型只适用线性模型且需要矩阵可逆
适用特征数1w以下1以上

7.不可逆性正规方程(Normal Equation Noninvertibility)

造成正规方程不可逆的原因有:

  • 特征线性相关
  • 特征数量 n n n大于训练集的数量 m m m

X T X X^TX XTX不可逆的处理办法:

  • 合并冗余项
  • 增加训练集数量
  • 使用正则化

在Octave中, X T X X^TX XTX不可逆时强制求解逆函数使用pinv()函数,可逆函数使用inv()函数。

8.week2编程思路

  1. 目的:建模求一组参数 θ \theta θ,能使预测函数输出值最接近真实值;
  2. 描述接近程度的函数:代价函数 J θ = J_\theta= Jθ= 1 2 m \frac 1 {2m} 2m1 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 \displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2 i=1m(hθ(x(i))y(i))2
    其中预测函数: h θ ( x ) = θ T x h_\theta(x)=\theta^Tx hθ(x)=θTx
  3. 代价函数越小,表示预测越准确;求代价函数的最小值,转为求 θ j \theta_j θj J ( θ ) J(\theta) J(θ)的偏导数,同时求多个参数的偏导数,机器学习中称为 批量梯度下降算法(batch gradient descent algorithm)
  4. θ j \theta_j θj 为: θ j : = θ j − α 1 m \theta_j:=\theta_j -\alpha \frac 1 m θj:=θjαm1 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i ) \displaystyle\sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})\cdot x_j^{(i)} i=1m(hθ(x(i))y(i))xj(i) f o r j : = 0 , 1 , 2 , . . . n \qquad for \quad j:=0,1,2,...n forj:=0,1,2,...n
    在迭代次数内执行该计算,并且需要同时更新 θ j \theta_j θj的值。
  5. 将迭代次数与代价函数图形化,直观判断优化过程,针对性修改学习参数 α \alpha α和迭代次数;

附录

思路整理

对模型进行优化处理目前看是从两个方面入手:特征+数据拟合方式,分别整理一下。

  • 特征
    可以取代和拆分,目的减少冗余计算;
    特征值缩放{两种方式:除以固定值、均值归一化},目的加快梯度下降的收敛速度;

  • 数据拟合方式
    直线->单变量 线性回归 使用正规方程和梯度下降求解
    曲线->多变量 多项式回归 梯度下降算法求解最优解

    ps:使用正规方程需要实例矩阵需要可逆即特征和训练集实例数一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值