美文网首页
Linear Regression (线性回归)

Linear Regression (线性回归)

作者: 倒着念 | 来源:发表于2018-06-08 17:11 被阅读197次

    概述

    线性回归是机器学习的一种回归模型,同时也是统计学中的回归模型。回归模型主要被用来预测真实值,相反分类问题主要被用来预测离散的数值,如有癌症或无癌症,薪水超过5k或没有。

    任何机器学习模型都有输入、输出、学习算法和损失函数。线性回归的输入可以有1或多个输入变量或者说是特征,输出只允许有一个 (也就是我们的预测值),其公式比较类似于多元一次函数

    公式1

    比如我们要预测一个人的薪水为多少,我们只需要将我们所拥有该用户的相关属性输入进去 (也就是xj) 与相应系数相乘的和便是我们最终预测的该用户的薪水量。

    简单线性回归

    简单线性回归也就是只拥有一个输入和一个输出,如图1

    在图1中,蓝色的点就是我们拥有的数据,其只有一个属性 (如所交税,信用度等), 纵轴是我们预测的值 (如收入薪水),而红色的线就是我们训练好的简单线性回归模型, 我们可以根据输入不同的input数值来预测最终的output。

    线性回归损失函数

    线性回归和简单线性回归的区别就在于它拥有多个属性来作为输入。其损失函数是平方误差 (square error) 来判断的,我们的目的是让损失函数得到的值最小,也就是要让损失的误差数最小。Square Error的公式如下:

    Square Error Formula

    m是我们拥有的用户数量,h(x)就是我们上面提到的线性回归模型的公式,通过预测值和真实值的差开平方,该值一定大于等于0,通过除以用户总数,我们就得到了平均损失值。大家会有一个问题,就是为什么还要除以2 ?其原因是为了对其求导的简便化 (Mathematically convenient) ,加上2和不加上2并不会影响我们最终的判断。

    线性回归学习算法

    梯度下降方法

    上一节我们已经学习到了梯度下降算法,这一节我们就会用它来让我们的模型进行学习。我们对线性回归的损失函数进行求偏导,可以得到

    公式2

    令其公式2等于0,通过它进行梯度下降,就可以训练出我们最终的想要的模型

    Normal Equation (正规方程)方法

    正规方程也就是通过矩阵的方式来求得相应系数,我们分别用X来表示我们得到的所有数据, y用来表示所有数据中的预测值

    表1

    例如表1,我们总共有4个数据和3个属性 (薪水为预测值,即为y值),那么我们的X, y分别为

    矩阵,向量表达形式

    其中,男用1表示,女用0表示。

    这样我们就可以用正规方程表示线性回归模型的公式和损失函数了,同时令损失函数的偏导函数等于0,我们就可以推导出正规方程方法的学习公式,其公式分别为

    线性回归基于MXNet代码

    导入库

    导入库

    设置环境

    设置环境

    模拟数据

    制造数据

    构建线性回归模型

    构建模型相关代码

    梯度下降学习算法

    梯度下降学习算法代码

    引用参考

    Andrew Ng. Machine Learning. https://www.coursera.org/learn/machine-learning/.

    Ben Lambert. Deriving Least Squares Estimators. https://www.youtube.com/watch?v=Hi5EJnBHFB4.

    MXNet. Linear Regression from Scratch. https://gluon.mxnet.io/chapter02_supervised-learning/linear-regression-scratch.html.

    相关文章

      网友评论

          本文标题:Linear Regression (线性回归)

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