美文网首页机器学习线性回归
机器学习——线性回归(一)矩阵求解

机器学习——线性回归(一)矩阵求解

作者: 又迷鹿了 | 来源:发表于2018-09-01 15:20 被阅读25次

    什么是线性回归

      相对于其他算法来说线性回归的原理相对简单,而且它的表现形式与我们数学中的线性方程较为相似,更加利于大家所理解。所以线性回归一般会作为机器学习爱好者学习机器学习时要学的第一个算法。

      线性回归直白的理解就是寻找几个自变量(x_{1},x_{2},\cdots,x_{n})与因变量(y)之间的线性关系,之所以称之为“线性”是因为自变量都是一次幂的形式没有出现二次或更高形式的自变量。

      比如下面的例子: 图1

      上图所示是身高与体重的关系(体重很可能与身高有关系,自变量有一个:身高,因变量是体重),很明显身高与体重可能存在图中直线所示的关系。像这种关系便可以应线性回归进行分析。

      再例如: 图2

    一个人的可贷款金额可能与 他的住房面积和工资等因素有关系(房屋面积与工资这两个因素共同决定了贷款金额,自变量有两个房屋面积、工资,可贷款金额是因变量),通过图中的数据寻找工资、住房面积与可贷款金额之间的关系便可认为是一个线性回归问题。

      线性回归有一个特别需要注意的特点就是它研究的是连续的自变量与连续的因变量之间的关系,这个要与逻辑回归相区别。就像上两个例子中所示的住房面积和工资都是可以连续连续变化的,可能取到任何现实中合理的值,而相对应的贷款金额也会连续的变化;身高、体重同样也是连续的。逻辑回归中的h(x)是非连续的,其只有两个取值的可能。这也是一个问题选择逻辑回归还是线性回归进行分析的重要的条件。

    线性回归模型

      回归分析可以相对简单的理解成如下的形式:
    h_{w}(x)=w _{0}+w _{1}x_{1}+w _{2}x_{2}+w _{3}x_{3}+\cdots +w _{n}x_{n}=\sum_{i=0}^{n}w _{i}x_{i}
      其中w _{0},w _{1},w _{2},\cdots,w _{n}为自变量(因子)对于因变量y的权重。在线性代数中,其也可写成如下的形式:
    \begin{bmatrix} w_{0} & w_{1} & w_{2} & \cdots & w_{n} \end{bmatrix}\begin{bmatrix} 1\\ x_{1}\\ x_{2}\\ \vdots \\ x_{n}\end{bmatrix}=w^{T}x=h_{w}(x)
      有了上述的模型,我们的目的是找到或求出权重w_{0},w_{1},w_{2},\cdots,w_{n}的值,以便找到x_{1},x_{2},\cdots,x_{n}h(x)之间的映射(函数)关系。从图1中我们可以看出,一般情况下自变量与因变量不太可能满足一个严格的线性关系。比较理想的情况是数据点都比较均匀的分布在直线的两侧,也就是误差比较小。我们的目标便是找到一组w_{0},w_{1},w_{2},\cdots,w_{n}使模型与实际的误差最小。

      线性回归得出的结果与实际的结果应该满足如下的关系:

    y^{(i)}=w^{T}x^{i}+\varepsilon ^{(i)}
      上式中y^{(i)}是实际值,w^{T}x^{i}是模型的输出值也就是预测值,\varepsilon ^{(i)}是二者之间的误差。
      在理想情况下,或者说我们想让误差最好最好满足独立同分布的,也就是说每一条数据的误差相互之间没有影响而且他们都满足相同的分布。通常情况下,误差应该满足高斯分布(正态分布)如图3,即误差大的数据很少,误差都集中在某一个值的附近。那么理想情况下我们希望误差都集中在0的附近,而且数据点在模型产生的线两侧均匀的分布。那么就是希望误差满足均值为0,标准差为1的标准正态分布。

    3.jpg
      则误差 w^{T}x^{i} 的概率分布密度函数可以写作:
    p(\varepsilon ^{(i)})=\frac{1}{\sqrt{2 \pi}}exp(-\frac{\varepsilon ^{(i)}}{\sqrt{2}})^{2}
    即: p(y^{(i)}|x^{(i)};w)=\frac{1}{\sqrt{2\pi }}exp(-(\frac{\varepsilon ^{(i)}}{\sqrt{}2})^{2})=\frac{1}{\sqrt{2\pi }}exp(-(\frac{y^{(i)}-w^{T}x^{(i)}}{\sqrt{2}})^{2})
      上式可以理解为一个关于“ x^{(i)} ”对应下的“ y^{(i)} ”与权重“ w ”的函数。因为已知 x^{(i)}y^{(i)} ,所以上式可以看作是一个关于参数 w 的函数,即是一个似然函数。求上式的极大值也意味着求一个合适的 w ,是 w^{T}x^{i}=y^{(i)} 的概率最大,也就是求上式极大似然估计。
      则极大似然函数为: L(w)=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};w)
    L(w)=\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi }}exp(-(\frac{y^{(i)}-w^{T}x^{(i)}}{\sqrt{2}})^{2})
      转化为对数似然函数:
    log(L(w))=log(\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}}exp(-(\frac{y^{(i)}-w^{T}x^{(i)}}{\sqrt{2}})^{2}))
    log(L(w))=\sum_{i=1}^{m}log(\frac{1}{\sqrt{2\pi}}exp(-(\frac{y^{(i)}-w^{T}x^{(i)}}{\sqrt{2}})^{2}))
    log(L(w))=mlog(\frac{1}{\sqrt{2\pi}})-\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-w^{T}x^{(i)})^{2}
      其中 mlog(\frac{1}{\sqrt{2\pi}}) 是常量,求上式关于 w 的最大值,相当于求下面式 J(w) 的最小值。式 J(w) 与上式的后面的减数等价,相当于上式的减数去负再除 m ,只有这样 J(w) 才有实际的意义,即表示模型的平均误差的平方。
    J(w)=\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-w^{T}x^{(i)})^{2}
      上式中的 J(w) 也就是线性回归的惩罚函数(或目标函数)。求目标函数的取极小值时对应的 w 即是我们需要的解。下面分别用矩阵的方法和梯度下降的方法对其进行化简。

    矩阵化简求解

    J(w)=\frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-w^{T}x^{(i)})^{2}  可以用矩阵的方式表达如下:
    \begin{align*} J(w) &= \frac{1}{2}(xw-y)^{T}(xw-y) \\ &= \frac{1}{2}(w^{T}x^{T}-y^{T})(xw-y) \\ &= \frac{1}{2}(w^{T}x^{T}xw-w^{T}x^{T}y-y^{T}xw+y^{T}y) \end{align*}

      对上式取w的偏导:
    \begin{align*} \frac{\partial J(w)}{\partial w}&= \frac{1}{2}(\frac{\partial (w^{T}x^{T}xw)}{\partial w}-\frac{\partial (w^{T}x^{T}y)}{\partial w}-\frac{\partial (y^{T}xw)}{\partial w}+\frac{\partial (y^{T}y)}{\partial w}) \end{align*}
      在我之前的文章《机器学习——常见的矩阵求导公式》中对矩阵的导数进行了总结,根据文章中的公式7(x可看作列向量,那么x^{^{T}}x是一个常数)可得:\frac{\partial w^{T}x^{T}xw}{\partial w}=2x^{T}xw
      则上式可得:\frac{\partial J(w)}{\partial w}=\frac{1}{2}(2x^{T}xw-x^{T}y-y^{T}x)
      因为x^{T}y=y^{T}x所以上式可得:\frac{\partial J(w)}{\partial w}=x^{T}xw-x^{T}y

      令\frac{\partial J(w)}{\partial w}=0解得:w=(x^{T}x)^{-1}x^{T}y

      上面利用矩阵运算解得最佳的w,接下来将用梯度下降方法求解最佳w,并对结果进行分析。

    相关文章

      网友评论

        本文标题:机器学习——线性回归(一)矩阵求解

        本文链接:https://www.haomeiwen.com/subject/kwgdwftx.html