当前位置: 首页 > news >正文

建设部网站八大员查询seo优化快排

建设部网站八大员查询,seo优化快排,建设企业网站需要多少钱,河南省政府门户网站百城建设一、多元线性回归 1.1 多元线性回归的假设函数 在前面一部分的学习中,我们对训练集只考虑了单一的特征。对于房价预测来说,如下所示,我们只是使用单一的因素——房子面积对房价进行预测,其中的假设函数也只有一个因变量&#xf…

一、多元线性回归

1.1 多元线性回归的假设函数

在前面一部分的学习中,我们对训练集只考虑了单一的特征。对于房价预测来说,如下所示,我们只是使用单一的因素——房子面积对房价进行预测,其中的假设函数也只有一个因变量:
hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1 xhθ(x)=θ0+θ1x

在这里插入图片描述

但是在实际生活中,我们对一个指标的预测往往需要考虑多个元素。如下图所示,对房价的预测考虑了四个方面的因素,包括房子面积、房间个数、房子所在层数与房子存在的年限,我们可以使用 x1、x2、x3、x4x_1、x_2、x_3、x_4x1x2x3x4 分别表示每个因素,即特征yyy 表示我们预测得到的变量——房子价格。
在这里插入图片描述
所以我们可以用向量表示包含多个特征的训练集,对于上面的房价预测,我们可以将第 111 个训练样本表示为 x(1)=[20145145]x^{(1)}=\left[ \begin{matrix} 2014 \\ 5 \\ 1 \\ 45 \end{matrix} \right]x(1)=20145145,称为第 111 个特征向量,我们可以使用 xj(i)\boldsymbol{x^{(i)}_j}xj(i) 表示第 iii 个特征向量中的第 jjj 个元素。

当我们拥有了多个特征量后,单一变量的假设函数已经不能满足我们的需要了,所以我们需要引入多个变量的假设函数,对于有 nnn 个特征量的数据集,我们可以将假设函数表示如下:
hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxnh_\theta(x) = \theta_0 + \theta_1x_1 + \theta_2x_2+\cdots + \theta_nx_nhθ(x)=θ0+θ1x1+θ2x2++θnxn

为了更加简便的表示上式,我们可以用两个向量内积的形式表示,我们首先设 x0=1x_0 = 1x0=1 ,那么 xxx 就可以表示为 x=[x0x1x2⋮xn]x=\left[ \begin{matrix} x_0 \\ x_1 \\ x_2 \\ \vdots \\ x_n \end{matrix} \right]x=x0x1x2xn ,而其中的参数 θ\thetaθ 可以表示为 θ=[θ0θ1θ2⋮θn]\theta=\left[ \begin{matrix} \theta_0 \\ \theta_1 \\ \theta_2 \\ \vdots \\ \theta_n \end{matrix} \right]θ=θ0θ1θ2θn,因此,假设函数可以表示为:

hθ(x)=θ0+θ1x1+θ2x2+⋯+θnxn=θ0x0+θ1x1+θ2x2+⋯+θnxn=θTx\begin{aligned} h_\theta(x) &= \theta_0 + \theta_1x_1 + \theta_2x_2+\cdots + \theta_nx_n \\ & = \theta_0 x_0 + \theta_1x_1 + \theta_2x_2+\cdots + \theta_nx_n \\ & = \theta^T x \end{aligned}hθ(x)=θ0+θ1x1+θ2x2++θnxn=θ0x0+θ1x1+θ2x2++θnxn=θTx

其中 θT\theta^TθT 表示 θ\thetaθ 的转置。上式其实就表示向量 θ\thetaθxxx 的内积。假设函数满足以上形式的模型就成为多元线性回归模型,多元就是表示有多个因变量。

1.2 多元线性回归的梯度下降

通过上面的讨论,我们得到如下的假设函数:
hθ(x)=θTx=θ0x0+θ1x1+θ2x2+⋯+θnxnh_\theta(x) = \theta^Tx=\theta_0 x_0 + \theta_1x_1 + \theta_2x_2+\cdots + \theta_nx_nhθ(x)=θTx=θ0x0+θ1x1+θ2x2++θnxn

其中我们用 θ\thetaθ 表示参数向量,用 xxx 表示特征向量。对于有 nnn 个特征的训练集,θ\thetaθxxx 都是 n+1n+1n+1 维的,那么对于之前的代价函数:
J(θ0,θ1,⋯,θn)=12m∑i=1m[h(x(i))−y(i)]2J(\theta_0,\theta_1,\cdots,\theta_n) = \frac{1}{2m} \sum^m_{i=1} \left[ h(x^{(i)})-y^{(i)} \right ] ^2J(θ0,θ1,,θn)=2m1i=1m[h(x(i))y(i)]2

我们就可以简写为:
J(θ)=12m=12m∑i=1m[h(x(i))−y(i)]2J(\theta)=\frac{1}{2m}= \frac{1}{2m} \sum^m_{i=1} \left[ h(x^{(i)})-y^{(i)} \right ] ^2J(θ)=2m1=2m1i=1m[h(x(i))y(i)]2

其表示关于参数向量 θ\thetaθ 的函数。

那么梯度下降就可以表示为关于参数向量 θ\thetaθ 中每个元素的导数的式子:

do{
θj=θj−α∂∂θjJ(θ)\qquad\theta_j = \theta_j-\alpha\frac{\partial}{\partial \theta_j} J(\theta)θj=θjαθjJ(θ)
} while(!convergence)

从上面的式子我们也可以看出,其实对于多个特征的训练集,我们包含的 θ\thetaθ 参数也会变多,那么类比于之前的梯度下降算法,我们也可以分别对每个参数 θi\theta_iθi 更新,首先我们先写出我们的代价函数:
J(θ)=12m∑i=1m[h(x(i))−y(i)]2=12m∑i=1m[θ0+θ1x1(i)+θ2x2(i)+⋯+θnxn(i)−y(i)]2\begin{aligned}J(\theta) & =\frac{1}{2m} \sum^m_{i=1} \left[ h(x^{(i)})-y^{(i)} \right ] ^2 \\ & =\frac{1}{2m} \sum^m_{i=1} \left[ \theta_0 + \theta_1x^{(i)}_1 + \theta_2x^{(i)}_2 + \cdots + \theta_nx^{(i)}_n - y^{(i)} \right ] ^2 \end{aligned}J(θ)=2m1i=1m[h(x(i))y(i)]2=2m1i=1m[θ0+θ1x1(i)+θ2x2(i)++θnxn(i)y(i)]2

其中,上标 iii 表示训练集中的第 iii 个样本,下标 nnn 表示该样本对应的特征向量中的第 nnn 个元素,因为我们要分别更新每个参数 θi\theta_iθi,所以我们就要对每个 θi\theta_iθi 求导,如果我们记 x0(i)=1x^{(i)}_0 = 1x0(i)=1 ,则上式对 θn\theta_nθn 的偏导我们可以表示为:
∂∂θnJ(θ)=1m∑i=1m[hθ(x(i))−y(i)]xn(i)\frac{\partial}{\partial\theta_n}J(\theta)=\frac{1}{m}\sum^m_{i=1}\left[h_{\theta}(x^{(i)})-y^{(i)}\right]x^{(i)}_nθnJ(θ)=m1i=1m[hθ(x(i))y(i)]xn(i)

因此我们就可以得到对多元线性回归的梯度更新方式:

do{
θ0=θ0−α1m∑i=1m[hθ(x(i))−y(i)]x0(i)\qquad\theta_0 = \theta_0-\alpha\frac{1}{m}\sum^m_{i=1}\left[h_{\theta}(x^{(i)})-y^{(i)}\right]x_0^{(i)}θ0=θ0αm1i=1m[hθ(x(i))y(i)]x0(i)
θ1=θ1−α1m∑i=1m[hθ(x(i))−y(i)]x1(i)\qquad\theta_1 = \theta_1-\alpha\frac{1}{m}\sum^m_{i=1}\left[h_{\theta}(x^{(i)})-y^{(i)}\right]x_1^{(i)}θ1=θ1αm1i=1m[hθ(x(i))y(i)]x1(i)
⋮\qquad\vdots
θn=θn−α1m∑i=1m[hθ(x(i))−y(i)]xn(i)\qquad\theta_n = \theta_n-\alpha\frac{1}{m}\sum^m_{i=1}\left[h_{\theta}(x^{(i)})-y^{(i)}\right]x_n^{(i)}θn=θnαm1i=1m[hθ(x(i))y(i)]xn(i)
} while(!convergence)

1.3 特征缩放

在机器学习中对于有多个特征的数据集,如果能够保证特征的值都在相近的范围内,那么梯度下降算法将会更快的收敛。

先举个例子,如果在房价预测中包含两个特征:x1x_1x1 是房子面积(0−2000m20-2000m^202000m2)和 x2x_2x2 是房间个数(1−51-515),这里我们可以看出,两个特征的取值范围相差特别大,这时如果对整个模型进行梯度下降就会造成收敛过慢的问题。

如果我们令只有两个特征的模型的假设函数中 θ0=0\theta_0 = 0θ0=0 ,那么我们就能够根据 θ1\theta_1θ1θ2\theta_2θ2 做出如下蓝色的代价函数等高线,因为 θ1\theta_1θ1θ2\theta_2θ2 之间的范围相差过大,就会造成等高线非常的瘦高,这样在梯度下降时候,因为 θ1\theta_1θ1 的取值范围过小,所以其对应的参数 θ1\theta_1θ1 在很小范围内变化时候就会导致整个代价函数波动较大,所以会造成如下图箭头所示的梯度不断地变化,最终需要很多次才能达到收敛。
在这里插入图片描述
在这种情况下,一般是通过特征缩放来让梯度的收敛更快。例如对于上面的房子面积和房间个数两个特征,我们可以分别对这两个特征进入如下的处理:
x1=x12000x2=x25\begin{aligned}x_1 &= \frac{x_1}{2000} \\ x_2 &= \frac{x_2}{5}\end{aligned}x1x2=2000x1=5x2

也就是将其中的每个值都除以最大值,这样每个值都被 归一化[0,1][0,1][0,1] 之间了,这时得到的等高线如下图所示:
在这里插入图片描述
可以看到对这种更加均衡的等高线进行梯度优化时会很快的找到收敛点。

更一般的说,特征缩放 通常将特征的取值约束在 [−1,1][-1,1][1,1] 范围内,当然,特征的取值并不一定要完全在相同的范围内,只要两个特征的取值范围相差并不是很大就不会造成梯度收敛过慢的问题。

如果出现了上面所示的两个特征取值范围过大,一种方式是上面提到的 归一化,还有一种处理方式是 均值归一化,其过程处理过程如下:
xi=xi−μisix_i = \frac{x_i-\mu_i}{s_i}xi=sixiμi

其中 μi\mu_iμi 表示 xix_ixi均值sis_isi 表示 xix_ixi标准差或者 max⁡(xi)−min⁡(xi)\max(x_i)-\min(x_i)max(xi)min(xi)

综上所述,特征缩放就是实现将取值范围不同的特征归一化到相同的范围,从而减少梯度下降中迭代的次数,提高梯度下降的速度。

1.4 梯度下降中的技巧

在机器学习中我们需要保证梯度下降算法在工作中不出现意外,梯度下降的目的是通过优化其中的参数 θ\thetaθ 将代价函数最小化,随着迭代次数的增加,我们希望得到的关于代价函数的曲线如下图所示:
在这里插入图片描述
上图横轴表示梯度下降中的迭代次数,纵轴表示在第 nnn 次迭代的过程中根据当前的 θ\thetaθ 计算得到的代价函数的值。对于一个正确的梯度下降算法,在每次迭代后, J(θ)J(\theta)J(θ) 都应该有所下降,当 J(θ)J(\theta)J(θ) 不再大幅度下降时,表示梯度下降已经达到收敛。上图中在 300 轮之后代价函数已经不再有很大的波动,也就表示已经趋于收敛。

除了通过上图的曲线判断收敛,还有一种方式是通过 自动收敛测试,该方法需要选择一个 阈值 ϵ\boldsymbol{\epsilon}ϵ,如果 J(θ)J(\theta)J(θ) 在每次的迭代中减少的量小于这个阈值,就表示梯度下降达到了收敛。但是对于不同的学习任务,这个收敛阈值的选择是很困难的,因此最好的方式还是通过上图的曲线进行收敛判断。

梯度下降的公式中有一个参数就是学习率 α\alphaα ,如下所示:
θj=θj−α∂∂θjJ(θ)\theta_j = \theta_j - \alpha\frac{\partial}{\partial\theta_j}J(\theta)θj=θjαθjJ(θ)

前面已经说过,选择不同的 α\alphaα 会对梯度下降造成不同的影响。

通过 J(θ)J(\theta)J(θ) 的曲线图,我们还可以对算法是否在正常工作做出判断,如下左图所示,如果我们得到的代价函数曲线是一直上升的,也就是代价函数的值随着迭代的次数逐渐增大,这其实就表示我们的学习率 α\alphaα 的选择过大,造成迭代过程中参数一次次越过 J(θ)J(\theta)J(θ) 的最底点,从而引起代价函数的值增大,如下右图所示。

在这里插入图片描述

如果我们得到的 J(θ)J(\theta)J(θ) 的曲线如下图所示,其实也是表示选择的学习率 α\alphaα 过大。
在这里插入图片描述
已经有数学证明,只要选择的学习率 α\alphaα 足够小,就能够让代价函数在每次迭代中不断减小,但是我们也不能选择太小的学习率,因为这会造成梯度下降的过程收敛过慢。

学习率只是在整个模型开始时候选择,我们可以选择一个比较小的学习率,在训练过程中不改变,但是这可能会造成时间的浪费,对于比较大的样本集,可以选择在刚开始时候选择比较大的学习率,随着迭代次数的减少逐渐减少学习率。

1.5 特征选择与多项式回归

1.5.1 特征选择

首先我们看一个例子,如果我们只有房子的长(frontage)和宽(depth)两个特征,按照之前的讨论,我们需要建立如下的假设函数:
hθ(x)=θ0+θ1×frontage+θ2×depthh_{\theta}(x)=\theta_0 + \theta_1\times frontage + \theta_2 \times depthhθ(x)=θ0+θ1×frontage+θ2×depth

但是房价可能只与房子的面积相关,因此我们可以创造一个面积特征,从而构造一个更加合理的模型,首先我们令面积:
x=frontage×depthx = frontage \times depthx=frontage×depth

之后我们就能直接使用面积这一个特征构造假设函数:
hθ(x)=θ0+θ1xh_{\theta}(x)=\theta_0 + \theta_1x hθ(x)=θ0+θ1x

从这个例子可以看出,我们通过从原有的特征里进行选择,定义新的特征可以得到一个更好的模型。

1.5.2 多项式回归

类似与特征选择,我们可以通过 多项式函数 ,使用线性回归的方式来拟合非常复杂的函数,甚至是非线性函数,这就是 多项式回归

对于如下住房价格的数据集,可能有多个不同的模型用于拟合,

在这里插入图片描述
使用一元的线性回归并不能很好的拟合这些数据,所以我们可以选择如下的二次函数或三次函数对数据进行拟合
hθ(x)=θ0+θ1x+θ2x2hθ(x)=θ0+θ1x+θ2x2+θ3x3\begin{aligned}h_\theta(x) &=\theta_0 + \theta_1 x +\theta_2x^2 \\ h_\theta(x) & =\theta_0 + \theta_1 x +\theta_2x^2+\theta_3x^3\end{aligned}hθ(x)hθ(x)=θ0+θ1x+θ2x2=θ0+θ1x+θ2x2+θ3x3

但是如下图所示,一个二次函数的模型可能并不能很好的对数据做出预测

在这里插入图片描述

所以我们可能需要如下所示的三次函数来更好的拟合数据:

在这里插入图片描述
所以我们就可以构建如下的假设函数:
hθ(x)=θ0+θ1x1+θ2x2+θ3x3=θ0+θ1(size)+θ2(size)2+θ3(size)3\begin{aligned}h_\theta(x) &=\theta_0 + \theta_1 x_1 +\theta_2x_2 +\theta_3x_3 \\ & =\theta_0 + \theta_1 (size) +\theta_2(size)^2+\theta_3(size)^3\end{aligned}hθ(x)=θ0+θ1x1+θ2x2+θ3x3=θ0+θ1(size)+θ2(size)2+θ3(size)3

但是需要注意的是,我们这样构建模型后,特征缩放的作用就更加明显了,因为如果 x1x_1x1 的取值范围是 [1,1000][1,1000][1,1000],那么 x2x_2x2 的取值范围就会达到 [1,1000000][1,1000000][1,1000000] ,而 x3x_3x3 的取值范围会达到 [1,109][1,10^{9}][1,109],如果不进行特征缩放,那么梯度收敛的过程会非常慢。

除此之外,我们还可以根据数据创建平方根构成的多项式回归,即

hθ(x)=θ0+θ1(size)+θ2(size)h_\theta(x)=\theta_0+\theta_1(size)+\theta_2\sqrt{(size)}hθ(x)=θ0+θ1(size)+θ2(size)

这是因为平方根函数的图像大致如下,可以更好的拟合数据
在这里插入图片描述

二、正规方程

前面我们对代价函数求最小值都是使用梯度更新的方式,这里提出一种正规方程的算法,可以不再通过下面的梯度迭代的方式求使得代价函数最小的参数 θ\thetaθ,通过正规方程的方法,可以直接获得最优值。
在这里插入图片描述

2.1 正规方程

在微积分中,对于有多个参数的表达式,我们可以直接分别对每个参数求偏导,令偏导数等于 0 ,这样就可以直接得到使得整体表达式最小的参数值。如下所示的表达式:
J(θ0,θ1,⋯,θn)=12m∑i=1m[hθ(x(i))−y(i)]2J(\theta_0,\theta_1,\cdots,\theta_n) = \frac{1}{2m} \sum^m_{i=1} \left[ h_\theta(x^{(i)})-y^{(i)} \right ] ^2J(θ0,θ1,,θn)=2m1i=1m[hθ(x(i))y(i)]2

我们可以直接分别对每个 θn\theta_nθn 求导,并令每个 ∂∂θnJ(θ)=0,\frac{\partial}{\partial\theta_n}J(\theta)=0,θnJ(θ)=0,,求出此时的 θn\theta_nθn 的值,就是我们最终要求的解。

正规方程也是基于求导的方式,不过并不需要一步一步的计算导数,而是通过矩阵直接求解最优的参数值。

考虑如下的训练集,其中包含 m=4m=4m=4 个样本,每个数据有 n=4n=4n=4 个特征,
在这里插入图片描述
首先我们先对以上数据加入一列 x0=1x_0=1x0=1,如下所示:
在这里插入图片描述

这样我们就可以根据数据集的所有特征构建一个 特征矩阵,该特征矩阵包含所有训练样本的特征变量,是一个 m×(n+1)m\times (n+1)m×(n+1) 的矩阵,如下所示:
X=[12104514511416324011534323018522136]X=\left[\begin{matrix} 1 & 2104 & 5 & 1 & 45 \\ 1 & 1416 & 3 & 2 & 40 \\ 1 & 1534 & 3 & 2 & 30 \\ 1 & 852 & 2 & 1 & 36 \end{matrix} \right]X=11112104141615348525332122145403036

同时我们对样本的标签也进行矩阵化,得到一个 mmm 维的向量,如下:
y=[460232315178]y=\left[\begin{matrix} 460 \\ 232 \\ 315 \\ 178 \end{matrix} \right]y=460232315178

之后我们令参数向量 θ=(XTX)−1XTy\boldsymbol{\theta = (X^TX)^{-1}X^Ty}θ=(XTX)1XTy,这样我们就能够计算出使得代价函数最小的 θ\thetaθ 参数向量。

根据上面的描述,我们可以获得更加一般的描述,对于有 mmm 个样本的数据集 {(x(1),y(1)),⋯,(x(m),y(m))}\{(x^{(1)},y^{(1)}),\cdots,(x^{(m)},y^{(m)})\}{(x(1),y(1)),,(x(m),y(m))},其中每个 x(i)=[x0(i)x1(i)x2(i)⋮xn(i)]x^{(i)}=\left[\begin{matrix} x^{(i)}_0 \\ x^{(i)}_1 \\ x^{(i)}_2 \\ \vdots \\ x^{(i)}_n \end{matrix} \right]x(i)=x0(i)x1(i)x2(i)xn(i) 是一个 n+1n+1n+1 维的特征向量,其中 x0(i)=1x^{(i)}_0 = 1x0(i)=1,这样我们就可以构建一个特征矩阵 X,表示为:
X=[(x(1))T(x(2))T(x(3))T⋮(x(m))T]X=\left[\begin{matrix} (x^{(1)})^T \\ (x^{(2)})^T \\ (x^{(3)})^T \\ \vdots \\ (x^{(m)})^T \end{matrix} \right]X=(x(1))T(x(2))T(x(3))T(x(m))T

标签的特征向量 yyy 可以表示为:
y=[y(1)y(2)y(3)⋮y(m)]y=\left[\begin{matrix} y^{(1)} \\ y^{(2)} \\ y^{(3)} \\ \vdots y^{(m)} \end{matrix} \right]y=y(1)y(2)y(3)y(m)

为什么我们要构造这样的等式呢?我们首先看对于一个样本的假设函数:
hθ(x)=θ0x0+θ1x1+θ2x2+⋯+θnxnh_\theta(x)=\theta_0 x_0 + \theta_1x_1 + \theta_2x_2+\cdots + \theta_nx_nhθ(x)=θ0x0+θ1x1+θ2x2++θnxn

可以发现其表示的就是参数 θ\thetaθ 和特征向量 xxx 的乘积,那么我们把上面的特征矩阵 XXXθ\thetaθ 写成相乘的形式:
Xθ=y⇒[x0(1)x1(1)x2(1)⋯xn(1)x0(2)x1(2)x2(2)⋯xn(2)x0(3)x1(3)x2(3)⋯xn(3)⋮⋮⋮⋱⋮x0(m)x1(m)x2(m)⋯xn(m)][θ0θ1θ2θ3⋮θn]=[y(1)y(2)y(3)⋮y(m)]X\theta =y \quad \Rightarrow \quad \left[ \begin{matrix} x^{(1)}_0 & x^{(1)}_1 & x^{(1)}_2 & \cdots & x^{(1)}_n &\\ x^{(2)}_0 & x^{(2)}_1 & x^{(2)}_2 & \cdots & x^{(2)}_n \\ x^{(3)}_0 & x^{(3)}_1 & x^{(3)}_2 & \cdots & x^{(3)}_n \\ \vdots & \vdots & \vdots & \ddots & \vdots & \\ x^{(m)}_0 & x^{(m)}_1 & x^{(m)}_2 & \cdots & x^{(m)}_n \end{matrix}\right] \left[\begin{matrix} \theta_0 \\ \theta_1 \\ \theta_2 \\ \theta_3 \\ \vdots \\ \theta_n \end{matrix}\right] =\left[\begin{matrix} y^{(1)} \\ y^{(2)} \\ y^{(3)} \\ \vdots \\ y^{(m)} \end{matrix} \right]Xθ=yx0(1)x0(2)x0(3)x0(m)x1(1)x1(2)x1(3)x1(m)x2(1)x2(2)x2(3)x2(m)xn(1)xn(2)xn(3)xn(m)θ0θ1θ2θ3θn=y(1)y(2)y(3)y(m)

如果我们将矩阵相乘,比如 XXX 的第一行相乘得到的结果为:
θ0x0(1)+θ1x1(1)+θ2x2(1)+⋯+θnxn(1)=y(1)\theta_0 x^{(1)}_0 + \theta_1x^{(1)}_1 + \theta_2x^{(1)}_2+\cdots + \theta_nx^{(1)}_n = y^{(1)}θ0x0(1)+θ1x1(1)+θ2x2(1)++θnxn(1)=y(1)

可以发现,我们只是将每个假设函数写成了矩阵相乘的形式。

为什么满足代价函数最小的 θ=(XTX)−1XTy\boldsymbol{\theta = (X^TX)^{-1}X^Ty}θ=(XTX)1XTy 呢?这是因为当我们将代价函数也写成矩阵形式后,求代价函数相对于参数向量 θ\thetaθ 的导数,并令该导数为 000 就可以求出 θ=(XTX)−1XTy\boldsymbol{\theta = (X^TX)^{-1}X^Ty}θ=(XTX)1XTy,这些详细的步骤会在后面讲解。

这里我们需要注意的是,在梯度下降中我们为了让梯度下降的更快,引入了特征缩放,但是如果使用正规方程的方法求解使代价函数最小的参数向量 θ\thetaθ,我们就不需要通过特征缩放将所有特征变换到相近的范围了,因为特征缩放主要的目的是让梯度下降更快的收敛,但是我们使用正规方程并不需要进行反复的求解梯度,所以特征取值的范围对其并没有影响。

梯度下降需要选择学习率 α\alphaα 和进行多次迭代,但是正规方程的方法并不需要这些,只需要一步的计算就可以得到最优的参数值,但是正规变换在参数量过多时候,会造成矩阵的运算时间过长,矩阵运算的时间复杂度一般为 O(n3)O(n^3)O(n3),所以在参数量过多时候选择梯度下降会比正规方程的方法更好。

正规方程对于线性回归这个特定的模型很有用,但是对于更加复杂的学习算法,正规方程并不适用,所以梯度下降算法仍然是一个更普遍的方法。

2.2 正规方程在矩阵不可逆情况下的解决方法

在我们使用正规方程 θ=(XTX)−1XTy\boldsymbol{\theta = (X^TX)^{-1}X^Ty}θ=(XTX)1XTy 时候,我们需要求解 XTXX^TXXTX 的逆矩阵,但是有可能的情况是该矩阵是不可逆的,如果该该矩阵是不可逆的,主要有两个可能的原因:

  1. 参与学习的特征中出现了多余特征
    加入特征中存在两个特征,其中一个特征 x2=c×x1x_2 = c \times x_1x2=c×x1 ,那么我们构成的特征矩阵 XXX 就会包含两列成比例,这就会造成行列式为 0 ,从而造成矩阵不可逆。这种情况可以选择删除一部分多余的特征。
  2. 数据集中样本的数量 m 小于特征的个数 n
    这会造成参数向量的个数(n+1)大于样本的个数,要想从 mmm 个较小的样本中找到 n+1n+1n+1 个大的参数,就会有可能造成上卖弄的矩阵不可逆。在这种情况下可以选择删除一部分参数,或者使用后面介绍的正则化方式处理数据集。
http://www.lbrq.cn/news/2398573.html

相关文章:

  • 网站建设和管理制度seo优化器
  • 模板建站系统宁波网络推广方式
  • 网站后台费用北京seo诊断
  • 女人做一级a网站免费郑州seo外包v1
  • ppt模板背景图女装标题优化关键词
  • 那里做一元云购网站交换链接平台
  • 网站开发维护合同书seo关键词推广多少钱
  • 团购网站开发代码抚州网络推广
  • 拿自己爱人做网站如何对网站进行推广
  • 斐讯k2做网站网络优化器
  • 芜湖龙湖建设工程有限公司网站论坛seo招聘
  • 在网站写小说怎么做封面免费收录网站提交
  • 如何做影视网站百度seo文章
  • 王烨铭seo 优化教程
  • 帮客户做网站 没签合同咋办昆明网络营销
  • 门户网站开发需要seo专员是干嘛的
  • 网站建设最基础是什么推一手新闻发稿平台
  • 我司如何自己建设动态网站网站性能优化
  • 营销型网站建设需要懂什么软件域名查询站长之家
  • 余姚网站建设哪家好关键词工具
  • 网站建设的本科毕业论文建一个企业网站多少钱
  • 如何进入网站后台管理网站合肥建站公司seo
  • linux网站做301重定向百度一下你就知道官页
  • 开发一个网站要多少钱开发网站建设
  • 临沂网站设计网站设计公司排行
  • 重新做网站云巅seo
  • 长沙建站标协助找有为太极平面设计网站
  • 怎么做网站的导航条福州网站建设团队
  • 网站组件水平优化
  • 怎么做网页版网站链接买卖
  • 使用UV管理FastAPI项目
  • Ubuntu20.04 samba配置
  • 【Linux】如何理解 “一切皆文件”
  • 计算机网络:(十)虚拟专用网 VPN 和网络地址转换 NAT
  • Validation - Spring Boot项目中参数检验的利器
  • Unity 堆栈分析实战指南 C#