概念:线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w’x+b,b为误差服从均值为0的正态分布。
从概念上来看,我们理解线性回归还是有一些抽象的,下面我们就来用一个具体的例子帮助大家一起来理解线性回归。
首先是线性回归的方程我相信大家一定都见过,当只有一个变量的时候线性方程为: y=ωx+b,但是如果是多个变量的时候线性方程又是什么样的呢?下面我就通过一个例子来看一下有多个变量时的线性回归方程。
当有两个变量时
下面这个表是房屋的价格与房屋的面积大小、房间数量的多少的关系
然后就可以得出
从上面我们可以看到这是一个只有两个特征(x1,x2)的线性回归方程
但是在现实中可以发现其实影响的因数不止这些还有很多,当有n个变量时
我们还可以用矩阵来表示多元线性回归方程,我们可以将其看成是一行n列的矩阵相乘,表达式如下:
在这里面θ代表的权重可以将它看成是一行,X则是特征参数可看成n列的矩阵,通过矩阵的乘法然后再将它进行一下聚合就可以得到多元线性方程了:
这是我们的第一步利用矩阵知识对线性回归方程进行整合。
接着我们来看一下误差分析 y=ωx+b
从上面的公式可以看出在式子中不仅有wx,还有一项b,其实那个b就是我们要讨论的误差。在分析前我们来看一张图
从上面这张图我们可以看到那些红色点其实就是我们通过计算所得到的值,然而那些值都没有在模型上,而是偏离了那个模型,所以我们就可以得到真实值与预测值之间是有误差的。所以我们就可以得到
在上式中ε就是误差项,并且这个误差项还以能满足一些条件
所谓的
(1)独立:就是数据之间互不影响,比如不同的房屋之间的面积是不相互影响的。
(2)同分布就是指在同一空间中,比如在同一栋房子中的不同楼层的房子。
(3)高斯分布:就是指在绝大多数情况下,在一个空间内的波动不大。
紧接着是第三步我们来对“似然函数”进行理解
通过前面的探索我们可以将线性回归的方程写成:
由前面我们知道误差分析是符合高斯分布的,所以我们就可以得到误差分析的概率值为
然后我们再结合①式
我们都知道误差项肯定是越小越好了,那么接下来第四步我们要讨论的就是什么样的参数和特征的组合能够让误差项最小呢? 这里就引入了似然函数的作用。似然函数的作用就是要根据样本来求什么样的参数和特征的组成能够最接近真实值。越接近真实值则误差越小。(似然函数就是求让预测值与真实值相等的函数)
其中这里面的∏代表的是各元素相乘的结果。
上面的公式是不是让你看的头都大了,那我们接下来就运用对数的知识来对该式子进行化解。
我们要用到的对数公式是:logA.B=logA+logB,
然后我们就可以进行化解了,将L(θ)进行操作
其中最后得到的J(θ)其实说的通俗易懂一些就是“损失函数”,它的值是越小越好的,只有损失越小预测值与真实值之间才能更加接近。
所以我们接下来要做的就是对我们的最小二乘法(损失函数)J(θ)求最小值。
第一步就是利用矩阵的知识将“损失函数”转换一下
然后我们再来对“损失函数”进行求导
综上所述我们就可以得到参数θ:
上面就是对“损失函数”的优化,但是通过上面的矩阵的方法进行优化的时候还是有一些缺陷的,该方法就是必须满足矩阵时可逆的。
那么如果XтX不可逆的时候我们又怎么办呢?
在这里我们就有另外一种算法:梯度下降法来求“损失函数”的最小值
首先是初始化θ(随机初始化),沿着负梯度方向迭代,更新后的θ使J(θ)更小
梯度最小法:就是如图先假设一个定点,然后按照一定的长度顺着这个梯度对θ进行更新,重复下去就可以找到一个最低点,然后就可以得到最小值了。
所以我们就要求出每个变量θ的梯度
然后我们再将这些梯度进行相加
如果是批量下降算法如下:
随机下降时算法如下
如果不是每一个样本都要改变梯度,而是取得多个样本的平均值,这是就需要用“**折中”**算法,就是将批量下降算法与随机下降算法进行取平均值。
通过上面一系列的算法我们就可以得到
从上面我们可以看到当数据复杂度高的时候,拟合度就很好,但是也有数据过拟合的现象(过拟合:就是在训练数据上的表现很好,但是在测试集上的数据表现的就不好)那么这sh我们就要加入惩罚因子,
L2正则----Ridge回归(L2会选择更多的特征,这些特征都会接近于0):
L1正则—Lasso回归(L1会趋向于产生少量的特征,而其他的特征都是0):
最后这个就是Elastic Net 回归,它是把 L1 正则和 L2 正则按一定的比例结合起来的: