什么是线性回归
- 线性回归是利用回归方程对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式
线性回归模型:
f(x)=wTx
线性回归模型的目标就是找到一系列参数 w来使得 f(x)=wTx尽可能地贴近真实值,使误差减小的最小值。
以房子价格为例:
真实关系:真实房子价格 = 0.02×中心区域的距离 + 0.04×城市一氧化氮浓度 + (-0.12×自住房平均房价) + 0.254×城镇犯罪率
那么现在呢,我们随意指定一个关系(猜测)
随机指定关系:预测房子价格 = 0.25×中心区域的距离 + 0.14×城市一氧化氮浓度 + 0.42×自住房平均房价 + 0.34×城镇犯罪率
真实结果与我们预测的结果之间会存在一定的误差,已如下图所示:
损失函数
yi为第i个训练样本的真实值
h(xi)为第i个训练样本特征值组合预测函数
选择最小二乘法作为损失函数,主要是其有十分好的几何意义,对应了常用的欧式距离。在线性回归中,就是找到一个直线,使得所有样本到直线的欧式距离最小
模型优化方法
因为预测值与真实值之间的误差,所以需要机器学习不断训练优化模型,让预测值更接近真实值。
- 常用的优化方法:
- 正规方程
X为特征值矩阵,y为目标值矩阵。直接求到最好的结果
缺点:当特征过多过复杂时,求解速度太慢并且得不到结果
- 梯度下降法
- 梯度的概念
梯度是微积分中一个很重要的概念,
在单边量的函数中,梯度就是函数的微分,表示函数在某点的切斜的斜率,在多变量的函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点上升最快的方向,
那么梯度的反方向就是函数在给定点下降最快的方向,这正是我们所需要的。所以我们只要沿着梯度的反方向一直走,就能找到到局部的最低点。
如何求梯度值:
在微积分里面,对多元函数的参数求偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度
梯度下降公式:
我们假设有一个目标函数 :
j(Θ)=Θ11 + Θ22
要通过梯度下降法计算这个函数的最小值,函数j(Θ)最小值其实是 (0,0)点
具体实现步骤:
初始起步Θ0(1,3)
初始的学习率为:α = 0.1
函数的梯度为:▽:J(θ) =(2Θ1 , 2Θ2)
进行多次迭代:
最终结果接近于0
梯度下降和正规方程的对比
- 最小二乘法XTX的逆矩阵,有可能它的逆矩阵不存在,所以这个时候正规方程就不可使用了,需要使用梯度下降法,
- 当样本特征非常多的时候矩阵XTX计算非常耗时,需要使用梯度下降法