Linear Regression 线性回归算法

来源:互联网 发布:c语言函数声明格式 编辑:程序博客网 时间:2024/04/30 10:22

基本介绍

  线性回归一般用来解决连续值变量预测问题。是有监督学习。叫线性回归,是因为,我们假定自变量和因变量之间是线性相关关系。

线性回归

  基本形式:

f(x)=w0x0+w1x1+w2x2+...+wnxn

  当x0=1时,w0就是截距。

  向量形式:

f(x)=wTx

  简单理解:线性回归就是要找到一条直线尽可能的拟合所有的点。

  linearRegression
  

损失函数

  对于多元线性回归,我们只需要确定w=[w0,w1,w2...wn]就能确定f(x)。如何确定最优的w,就需要损失函数。这里我们使用

均方误差得到损失函数。

J(w)=12mi=1m(f(xi)yi)2

  f(xi):当前w下,预估的y

  yi:原始的y

  2:为了之后计算方便。

  这里,我们只需要最小化该损失函数,就能拿到最优w。均方误差对应了欧氏距离。基于均方误差最小化来求解的方法叫做”最小二

乘法”。在线性回归中,最小二乘法就是试图找到一条直线,使得所有样本到直线上的欧式距离之和最小。

  使得J(w)=12mmi=1(f(xi)yi)2最小化来求解w叫做线性回归最小二乘的参数估计。这里J(w)是关于w的凸函数,当它

关于w的导数为零时,得到w的最优解。

  对于这种凸函数,只有一个最低点。除了直接求导的方式,当参数非常非常多时,还有一种方式,在计算机的世界里,可以逐步的去

逼近最低点。我们要做的是以最快的方式去逼近最低点。这里,我们就用到了梯度下降。梯度下降,就是在每一点,去对每一个w求偏

导,确定梯度(前进的方向),每次前进一点(步长),去逼近最低点。当此次和上一次前进的差值达到设定的阈值或达到迭代次数,就停止,

取此时的w为最接近的w。这个过程类似于下山,每前进一步,按最陡的方向下山是最快的;梯度的作用就是帮我们找到这个陡的方向。

欠拟合与过拟合

  欠拟合:特征太少,不足以描述样本。

  过拟合:特征太多,对样本描述过度。不具有一般性。此时可以用L1或L2正则化给他加一个惩罚项。MLLib中的线性回归没有使用正

则化方法。

举例:

  (1)给你自变量广告费用(x),让你预测曝光次数(y)。

  (2)根据身高预测体重。

  (3)根据面积、卧室数预测房价。

0 0
原创粉丝点击