前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >4 多变量线性回归(Linear Regression with Multiple Variables)

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

原创
作者头像
用户2188327
修改2020-07-02 17:23:01
7270
修改2020-07-02 17:23:01
举报

4 多变量线性回归(Linear Regression with Multiple Variables) 4.1 多特征(Multiple Features) 4.2 多变量梯度下降(Gradient Descent for Multiple Variables) 4.3 梯度下降实践1-特征值缩放(Gradient Descent in Practice I - Feature Scaling) 4.4 梯度下降实践2-学习速率(Gradient Descent in Practice II - Learning Rate) 4.5 特征和多项式回归(Features and Polynomial Regression) 4.6 正规方程(Normal Equation) 4.7 不可逆性正规方程(Normal Equation Noninvertibility) 5 Octave/Matlab Tutorial 5.1 Basic Operations 5.2 Moving Data Around 5.3 Computing on Data 5.4 Plotting Data 5.5 Control Statements: for, while, if statement 5.6 向量化(Vectorization) 5.x 常用函数整理

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

4.1 多特征(Multiple Features)

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

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

n: 特征的总数

xi: 代表样本矩阵中第 i 行,也就是第 i 个训练实例。

xji: 代表样本矩阵中第 i 行的第 j 列,也就是第 i 个训练实例的第 j 个特征。

参照上图,则有 x(2)=1416 3 2 40,x1(2)=1416

多变量假设函数 h 表示为:hθx=θ0+θ1x1+θ2x2+...+θnxn

可展开为:

$\begin{aligned} & \text{repeat until convergence:} \; \lbrace \newline \; & \theta_0 := \theta_0 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_0^{(i)}\newline \; & \theta_1 := \theta_1 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_1^{(i)} \newline \; & \theta_2 := \theta_2 - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_2^{(i)} \newline & \vdots \newline \; & \theta_n := \theta_n - \alpha \frac{1}{m} \sum\limits_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot x_n^{(i)} &\newline \rbrace \end{aligned}$

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

hθx=θTx,则得到同时更新参数的向量化(Vectorization)实现:

θ=θ−α1m(XT(Xθ−y))  (undefined)

X: 训练集数据,m×(n+1) 维矩阵(包含基本特征 x0=1)

4.3 梯度下降实践1-特征值缩放(Gradient Descent in Practice I - Feature Scaling)

在应用梯度下降算法实践时,由于各特征值的范围不一,可能会影响代价函数收敛速度。

以房价预测问题为例,这里选取房屋面积大小和房间数量这两个特征。

下图中,左图是以原始数据绘制的代价函数轮廓图,右图为采用特征缩放(都除以最大值)后图像。左图中呈现的图像较扁,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。

为了优化梯度下降的收敛速度,采用特征缩放的技巧,使各特征值的范围尽量一致

除了以上图人工选择并除以一个参数的方式,均值归一化(Mean normalization)方法更为便捷,可采用它来对所有特征值统一缩放:

xi:=xi−average(x)maximum(x)−minimum(x),使得 xi∈(−1,1)

对于特征的范围,并不一定需要使得 −1≤x≤1,类似于 1≤x≤3 等也是可取的,而诸如 −100≤x≤100,−0.00001≤x≤0.00001,就显得过大/过小了。

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

4.4 梯度下降实践2-学习速率(Gradient Descent in Practice II - Learning Rate)

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

•多次迭代收敛法

–无法确定需要多少次迭代

–较易绘制关于迭代次数的图像

–根据图像易预测所需的迭代次数

•自动化测试收敛法(比较阈值)

–不易选取阈值

–代价函数近乎直线时无法确定收敛情况

对于梯度下降,一般采用多次迭代收敛法来得出最小化代价函数的参数值,自动化测试收敛法(如设定 Jθ<10−3 时判定收敛)则几乎不会被使用。

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

hθx=θTx,则得到同时更新参数的向量化(Vectorization)实现:

θ=θ−α1m(XT(Xθ−y))  (undefined)

X: 训练集数据,m×(n+1) 维矩阵(包含基本特征 x0=1)

4.3 梯度下降实践1-特征值缩放(Gradient Descent in Practice I - Feature Scaling)

在应用梯度下降算法实践时,由于各特征值的范围不一,可能会影响代价函数收敛速度。

以房价预测问题为例,这里选取房屋面积大小和房间数量这两个特征。

下图中,左图是以原始数据绘制的代价函数轮廓图,右图为采用特征缩放(都除以最大值)后图像。左图中呈现的图像较扁,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。

为了优化梯度下降的收敛速度,采用特征缩放的技巧,使各特征值的范围尽量一致

除了以上图人工选择并除以一个参数的方式,均值归一化(Mean normalization)方法更为便捷,可采用它来对所有特征值统一缩放:

xi:=xi−average(x)maximum(x)−minimum(x),使得 xi∈(−1,1)

对于特征的范围,并不一定需要使得 −1≤x≤1,类似于 1≤x≤3 等也是可取的,而诸如 −100≤x≤100,−0.00001≤x≤0.00001,就显得过大/过小了。

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

4.4 梯度下降实践2-学习速率(Gradient Descent in Practice II - Learning Rate)

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

•多次迭代收敛法

–无法确定需要多少次迭代

–较易绘制关于迭代次数的图像

–根据图像易预测所需的迭代次数

•自动化测试收敛法(比较阈值)

–不易选取阈值

–代价函数近乎直线时无法确定收敛情况

对于梯度下降,一般采用多次迭代收敛法来得出最小化代价函数的参数值,自动化测试收敛法(如设定 Jθ<10−3 时判定收敛)则几乎不会被使用。

我们可以通过绘制代价函数关于迭代次数的图像,可视化梯度下降的执行过程,借助直观的图形来发现代价函数趋向于多少时能趋于收敛,依据图像变化情况,确定诸如学习速率的取值,迭代次数的大小等问题。

对于学习速率 α,一般上图展现的为适中情况,下图中,左图可能表明 α 过大,代价函数无法收敛,右图可能表明 α 过小,代价函数收敛的太慢。当然,α 足够小时,代价函数在每轮迭代后一定会减少。

通过不断改变 α 值,绘制并观察图像,并以此来确定合适的学习速率。 尝试时可取 α 如 … 0,001, 0.003, 0.01, 0.03, 0.1, …

4.5 特征和多项式回归(Features and Polynomial Regression)

在特征选取时,我们也可以自己归纳总结,定义一个新的特征,用来取代或拆分旧的一个或多个特征。比如,对于房屋面积特征来说,我们可以将其拆分为长度和宽度两个特征,反之,我们也可以合并长度和宽度这两个特征为面积这一个特征。

线性回归只能以直线来对数据进行拟合,有时候需要使用曲线来对数据进行拟合,即多项式回归(Polynomial Regression)

比如一个二次方模型:hθx=θ0+θ1x1+θ2x22

或者三次方模型:hθx=θ0+θ1x1+θ2x22+θ3x33

或者平方根模型: hθx=θ0+θ1x1+θ2x22+θ3x3

在使用多项式回归时,要记住非常有必要进行特征缩放,比如 x1 的范围为 1-1000,那么 x12 的范围则为 1- 1000000,不适用特征缩放的话,范围更有不一致,也更易影响效率。

4.6 正规方程(Normal Equation)

对于一些线性回归问题来说,正规方程法给出了一个更好的解决问题的方式。

正规方程法,即令 ∂∂θjJθj=0 ,通过解析函数的方式直接计算得出参数向量的值 θ=XTX−1XTy ,Octave/Matlab 代码: theta = inv(X'*X)*X'*y。

X−1: 矩阵 X 的逆,在 Octave 中,inv 函数用于计算矩阵的逆,类似的还有 pinv 函数。

X': 在 Octave 中表示矩阵 X 的转置,即 XT

下表列出了正规方程法与梯度下降算法的对比

条件

梯度下降

正规方程

正规方程法的推导过程

$\begin{aligned} & J\left( \theta \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( {h_{\theta}}\left( {x^{(i)}} \right)-{y^{(i)}} \right)}^{2}}}\newline \; & =\frac{1}{2m}||X\theta-y||^2 \newline \; & =\frac{1}{2m}(X\theta-y)^T(X\theta-y) &\newline \end{aligned}$

展开上式可得

J(θ)=12mθTXTXθ−θTXTy−yTXθ+yTy

注意到 θTXTy 与 yTXθ 都为标量,实际上是等价的,则

J(θ)=12m[XTXθ−2θTXTy+yTy]

接下来对J(θ) 求偏导,根据矩阵的求导法则:

dXTAXdX=(A+AT)X

dXTAdX=A

所以有:

∂Jθ∂θ=12m2XTXθ−2XTy=XTXθ−XTy

令∂Jθ∂θ=0, 则有

θ=XTX−1XTy  (undefined)

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

(本部分内容为选讲)

正规方程无法应用于不可逆的矩阵,发生这种问题的概率很小,通常由于

•特征之间线性相关

比如同时包含英寸的尺寸和米为单位的尺寸两个特征,它们是线性相关的

即 x1=x2*3.282。

•特征数量大于训练集的数量m≤n。

如果发现 XTX 的结果不可逆,可尝试:

•减少多余/重复特征

•增加训练集数量

•使用正则化(后文)

对于这类不可逆的矩阵,我们称之为奇异矩阵退化矩阵

这种情况下,如果还想使用正规方程法,在Octave中,可以选用 pinv 函数,pinv 区别于 inv,pinv 函数被称为伪逆函数,在矩阵不可逆的时候,使用这个函数仍可正确地计算出 θ 的值。

5 Octave/Matlab Tutorial

复习时可直接倍速回顾视频,笔记整理暂留。

5.1 Basic Operations

5.2 Moving Data Around

5.3 Computing on Data

5.4 Plotting Data

5.5 Control Statements: for, while, if statement

5.6 向量化(Vectorization)

j=0nθjxj=θTx

5.x 常用函数整理

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档