线性回归
前言:最近在学机器学习相关算法,非CS专业,觉得学的比较吃力,所以写博客总结,顺便也验证一下自己学到的,会写的比较啰嗦,知识上有什么比对的,请大家指出来,谢谢!
P.S.第一次写博客,在结构上有什么不正确的地方,希望大家可以指出,谢谢大家!
回归是什么?
- 回归是监督学习中的一种。
- 回归用于预测输入变量和输出变量自建的关系,回归问题等价于函数拟合。
- 回归问题分为学习和预测两个过程。
来自知乎XZH.小章鱼、李航《统计学习方法》
回归用来做什么?
- 其实在回归是什么的答案中已经提到了,回归用来预测(线性回归),也可以用来分类(Logistic回归,softmax回归)。
线性回归
1. 线性回归是什么?
假设特征满足线性关系,根据跟定的训练数据,训练一个模型,并用此模型预测。线性归回输出的是连续值。(比如气温、房价)
2. 线性回归原理
根据线性回归的定义,在训练数据集中,每个分量都被当做一个特征,每个特征都对应一个参数,特征与参数符合一定的线性关系,得到预测值:
w为参数,x为样本,h(x)为实际值。
但是预测值与真实值之间总是存在误差的,因此线性模型最终的模型就是预测值加上误差值,即:
我们认为服从均值为0,方法为某个定值的正态分布,因此就有如下公式推导:
上图即线性回归的目标函数(损失函数)的推导过程,推导的前提条件是认为误差符合正态分布、样本独立同分布。
3. 梯度下降
梯度下降的思想:
1. 随机初始化参数
2. 沿着负梯度方向迭代,更新后是目标函数最小。
公式为: 其中a为步长。
根据公式,有如下推导:
最后就是线性回归的梯度下降公式。
我理解的线性回归的目标函数和梯度下降公式的关系是,目标函数是搭建模型的思想,梯度下降是实现目标函数的途径。
在梯度下降中分为批量梯度下降(BGD)和随机梯度下降(SGD)二者在公式上的区别是步长a后面的∑,思想上,BGD是得到全部样本后才进行梯度下降,SGD是获得一个样本,就进行梯度下降,求的对应的参数。与BGD相比,优先选择SGD,因为SGD速度快,同时可能跳过局部最小值。
SGD与BGD是两种极端情况,所以在实际应用当中多数情况下回选择采用一种折中的做法,即将若干的样本的平均梯度作为更新方向,选择多上样本就需要分情况了,这种折中的做法称为mini-batch
4.正则化
一句话说明正则化的作用就是防止过拟合。
一般正则项分为L1与L2;
L1是参数和的绝对值,即∑|θ|,L1正则项可以产生稀疏解,因此有特征选择和降维的功能。
L2是参数的平方和∑(θ^2),L2正则项可以减少特征的参数,因此可以达到防止过拟合的效果。
L1,L2还可以结合使用,称为Elastic Net。