首页 > 代码库 > 机器学习之线性回归

机器学习之线性回归

1. 线性回归

简述

在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合(自变量都是一次方)。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。

优点:结果易于理解,计算上不复杂。 
缺点:对非线性数据拟合不好。 
适用数据类型:数值型和标称型数据。 
算法类型:回归算法

线性回归的模型函数如下: 

hθ=θTx


它的损失函数如下: 

J(θ)=12mi=1m(hθ(x(i))?y(i))2


通过训练数据集寻找参数的最优解,即求解可以得到minJ(θ)的参数向量θ,其中这里的参数向量也可以分为参数wb,分别表示权重和偏置值。

 

求解最优解的方法有最小二乘法和梯度下降法。

梯度下降法

梯度下降算法的思想如下(这里以一元线性回归为例):

首先,我们有一个代价函数,假设是J(θ0,θ1),我们的目标是minθ0,θ1J(θ0,θ1)。 
接下来的做法是:

  • 首先是随机选择一个参数的组合(θ0,θ1),一般是设θ0=0,θ1=0;
  • 然后是不断改变(θ0,θ1),并计算代价函数,直到一个局部最小值。之所以是局部最小值,是因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值,选择不同的初始参数组合,可能会找到不同的局部最小值。 
    下面给出梯度下降算法的公式:

repeat until convergence{

 

       θj:=θj?α??θjJ(θ0,θ1)(forj=0andj=1)

 

}

也就是在梯度下降中,不断重复上述公式直到收敛,也就是找到。其中符号:=是赋值符号的意思。

而应用梯度下降法到线性回归,则公式如下: 

θ0:=θ0?α1mi=1m(hθ(x(i))?y(i)) θ1:=θ1?α1mi=1m((hθ(x(i))?y(i))?x(i))


公式中的α称为学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈进的步子有多大。

α为步长,当步长过大时会略过最优点,当步长过小时分析的速度会变慢,为了能获得准确的最优解,步长可小不可大。

 

在梯度下降中,还涉及都一个参数更新的问题,即更新(θ0,θ1),一般我们的做法是同步更新。

最后,上述梯度下降算法公式实际上是一个叫批量梯度下降(batch gradient descent),即它在每次梯度下降中都是使用整个训练集的数据,所以公式中是带有mi=1

 

机器学习之线性回归