机器学习算法梳理1-线性回归

机器学习算法-线性回归

一、相关理论基础

1.1 凸函数

某个向量空间的凸子集(区间)上的实值函数,如果在其定义域上的任意两点 ,有 f(tx + (1-t)y) <= tf(x) + (1-t)f(y),则称其为该区间上的凸函数;

1.2 线性

线性并不等于直线。线性函数的定义是:一阶(或更低阶)多项式,或零多项式。当线性函数只有一个自变量时,y = f(x);

如果有多个独立自变量,表示为:

                                                                           f\left ( x_{1},x_{2},......,x_{k} \right ) = a + b_{1}x_{1} + ......+ b_{k}x_{k}

总结: 特征是一维的,线性模型在二维空间构成一条直线;特征是二维的,线性模型在三维空间中构成一个平面;若特征是三维的,则最终模型在四维空间中构成一个体;以此类推……

1.3 极大似然估计

定义:从样本中随机抽取n个样本,而模型的参数估计量使得抽取的这n个样本的观测值的概率最大。最大似然估计是一个统计方法,它用来求一个样本集的概率密度函数的参数。

二、线性回归

定义:

回归在数学上来说是给定一个点集,就能够用一条曲线去拟合之。如果这个曲线是一条直线(超平面),那就被称为线性回归。若不是一条直线则称为非线性回归,常见有多项式回归、逻辑回归等。

线性模型优劣:

优点:结果易于理解,计算上不复杂;

缺点:对非线性的数据拟合不好;

2.1 线性回归模型

一般线性模型表示:

                                                                                \hat{y} = \theta _{0} + \theta_{1}x_{1} + \theta_{2}x_{2} + ...... + \theta_{n}x_{n}

其中x_{1}x_{2}等表示不同的特征,\theta_{0}\theta_{1}等表示权重;用向量的形式表示为:\hat{y} = h_{_{\theta }}\left ( x \right ) = \theta ^{T}x

2.2 最小二乘法

最小二乘法是基于均方误差最小化来进行模型求解的方法,最小二乘法试图找到一条直线,使所有的样本到直线上的欧式距离之和最小。

线性模型用一个直线(平面)拟合数据点,找出一个最好的直线(平面)即要求每个真实点距离平面的距离最近。即使得残差平方和(Residual Sum of Squares, RSS)最小:

                                                                                RSS\left ( X,h_{\theta } \right ) = \sum_{i=0}^{m}\left ( \theta ^{T}x^{i} - y^{i}\right )^{2}

另一种情况下,为消除样本量的差异,也会用最小化均方误差(MSE)拟合:

                                                                               MSE\left ( X,h_{\theta } \right ) = \frac{1}{m}\sum_{i=0}^{m}\left (\theta ^{T}x^{i} - y^{i}\right )^{2}

2.3 极大似然法

真实值与预测值存在的差异(用\varepsilon表示误差):y^{(i)} = \theta ^{T}x^{_{i}} + \varepsilon ^{(i)}

并且误差\varepsilon ^{(i)}独立并且同分布的,并且服从均值为0 的方差为\theta ^{2}的高斯分布:

                                                                             p\left (\varepsilon ^{(i)} \right ) = \frac{1}{\sqrt{2\pi }\sigma }exp\left ( -\frac{\left ( \varepsilon^{\left ( i \right )} \right )^{2}}{2\sigma ^{2}} \right )

                                                                             p\left ( \varepsilon ^{(i)} \right ) = p\left ( y^{(i)} \mid x^{i},\varepsilon ^{(i)}\right )

将误差带入以上公式:

                                                               p\left ( y^{(i)} \mid x^{(i)}; \theta \right ) = \frac{1}{\sqrt{2\pi }\sigma }exp\left ( -\frac{(y^{(i)}-\theta ^{T}x^{(i)})^{2}}{2\sigma ^{2}} \right )

对已发生的样本,出现的概率为:

                                                           L(\theta ) = \prod_{i=1}^{m}p(y^{(i)}\mid x^{(i)};\theta ) = \prod_{i=1}^{m}\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{(y^{(i)}-\theta ^{T}x^{(i)})^{2}}{2\sigma ^{2}})

两边取对数:

                                                          log L\left ( \theta \right ) = log\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi }\sigma }exp(-\frac{(y^{(i)}-\theta ^{T}x^{(i)})^{2}}{2\sigma ^{2}})

                                                                         =\sum_{i=1}^{m}log\frac{1}{\sqrt{2\pi }\sigma }-\frac{1}{\sigma ^{2}}\cdot \frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}

使出现的概率最大,即使上面的方程达到最大,通过简单变换转换成求最小值问题,得使以下方程最小:

                                                                               J(\theta ) = \frac{1}{2}\sum_{i=1}^{m}(y^{(i)}-\theta ^{T}x^{(i)})^{2}

以上方程跟最小二乘法相似,以下均以此函数作为损失函数。

具体推导参考

三 求解

3.1 求解-正规方程法

 因此知道特征矩阵以及标签就可以求出相应的权重\theta

3.2 求解-梯度下降

梯度下降法基于的思想为:要找到某函数的极小值,则沿着该函数的梯度方向寻找。若函数为凸函数且约束为凸集,则找到的极小值点则为最小值点。

梯度下降基本算法为: 首先用随机值填充θ(这被称为随机初始化),然后逐渐改进,每次步进一步(步长α),每一步都试图降低代价函数,直到算法收敛到最小。

                                                                               \theta:=\theta-\alpha\cdot\nabla_\theta J(\theta)θ:=θ−α⋅∇θ​J(θ)

求解梯度常见有以下几个方法:

批量梯度下降(Batch Gradient DescentBGD)    

批量梯度下降法,是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新。

                                                                \theta = \theta_{i} - \alpha \sum_{j=0}^{m}(h_{\theta }(x_{0}^{j},x_{1}^{j}......,x_{n}^{j})-y^{j})x^{i}

优点:得到全局最优解;易于并行实现
缺点:当样本数目很多时,训练过程会很慢

随机梯度下降(Stochastic Gradient Descent)

随机梯度下降法,其实和批量梯度下降法原理类似,区别在与求梯度时没有用所有的m个样本的数据,而是仅仅选取一个样本j来求梯度。对应的更新公式是:

                                                                 \theta = \theta_{i} - \alpha (h_{\theta }(x_{0}^{j},x_{1}^{j}......,x_{n}^{j})-y^{j})x^{i}

优点:训练速度快
缺点:准确度下降,可能跳出最优解,不是全局最优

小批量梯度下降法(Mini-batch Gradient Descent)

进行迭代时选用部分样本, 1<x < m

                                                                 \theta = \theta_{i} - \alpha \sum_{j=t}^{t+x-1}(h_{\theta }(x_{0}^{j},x_{1}^{j}......,x_{n}^{j})-y^{j})x^{i}

3.3 梯度下降方法与正规方程比较

 四 模型评估

回归评价指标 MSE(均方误差)、RMSE(均方根误差)、MAE(平均绝对误差)、R-Squared;Sklearn 中使用R-squared

参考链接

五 sklearn实现

参考链接

六 关于L1和L2的直观理解

机器学习中正则化项L1和L2的直观理解

七 参考链接

https://blog.csdn.net/hahayikeshu/article/details/82964574

https://note.youdao.com/share/?id=981825c617d47c10f4e0c373e8b7bfff&type=note#/

https://blog.csdn.net/walk_power/article/details/82924363

https://blog.csdn.net/skullFang/article/details/79107127

猜你喜欢

转载自blog.csdn.net/weixin_42007359/article/details/82969283