经典算法(一):线性回归

 前言

 1. 基本形式

 2. 损失函数

     2.1 损失函数

           2.1.1 最小二乘法

           2.1.2 极大似然估计

     2.2 正规方程法

           2.2.1 一般形式

           2.2.2 矩阵形式

     2.3 梯度下降法

           2.3.1 梯度下降法的代数方式描述

           2.3.2 梯度下降法的矩阵方式描述

           2.3.3  梯度下降的算法调优

           2.3.4  梯度下降法的类型

 3. 欠/过拟合

    3.1 欠拟合

           3.1.1  何为欠拟合?

           3.1.2  解决方法

    3.2 过拟合   

           3.2.1  何为过拟合?

           3.2.2  解决方法

 4. 正则化

    4.1 L0范数

    4.2 L1范数与Lasso

    4.3 L2范数与Ridge

    4.4 Elastic Net

    4.5  L1为稀疏约束的原因

 

前言       

        线性回归模型是用一条曲线去拟合一个或多个自变量 x 与因变量 y 之间关系的模型,若曲线是一条直线或超平面(成直线时是一元线性回归,成超平面时是多元线性回归)时是线性回归,否则是非线性回归,常见的非线性回归有多项式回归和逻辑回归。线性回归是有监督学习,有标签(可以理解为样本有y值)。通过学习样本D=\left \{ \left ( x _{i},y_{i} \right ) \right \}_{i=1}^{m} 学习映射f:x\rightarrow y,得到预测的结果y_{i}是连续值变量,这是简单的一元线性回归模型,多元线性回归模型后面会详细讲(两者的异同可以参考博文)。线性回归是基础算法,同时是高级算法的根基,所以有必要掌握它的思想并学会融会贯通。接下来我们将详细学习该算法。

1.  基本形式

      预测函数一般表示式

                                                       \large f\left ( x _{i}\right )=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{m}x_{m}

      令\large x _{0}=1,可以写成

                                                       \large f\left ( x _{i}\right )=\theta _{0}x_{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{m}x_{m}=\sum_{i=0}^{m}\theta _{i}x_{i}

      向量表达式

                                                                  \large f\left ( x\right )=\theta ^{T}x+b

2.  损失函数

   2.1 损失函数

        线性回归模型是用一条曲线去拟合x与y之间的关系,那拟合的效果的好坏如何去判定呢?这就是我们要提到的损失函数,每个算法的损失函数或许不一样,但我们的目的都是使得损失函数最小化,所以需要找到对应的权重θ使得损失函数最小。下面左图是一个权重下的损失函数图像,右图是两个权重下的损失函数,损失函数是凸函数,都有唯一的最小值点。

 

                                          

     一般将线性回归的损失函数定义为:

                                                     J\left ( \theta _{0},\theta _{1},...,\theta _{m} \right )=\frac{1}{2m}\sum_{i=1}^{m}\left ( h_{\theta }\left (x _{i} \right ) -y_{i}\right )^{2}  

      下面的损失函数与该形式虽然形式不完全一样,但是含义一样。这里的 \frac{1}{2} 是为了求导计算的便利,而 \frac{1}{m} 是将损失平均化,消除样本量m带来的影响。 

     h_{\theta }\left (x _{i} \right )是预测值,但因为预测值与实际值之间还是存在一定的差距,如何去确定预测的效果的好坏,需要判定预测值h_{\theta }\left (x _{i} \right )与实际值\large y_{i}之间的差距,这差距用误差\large \varepsilon来表示,即\large \varepsilon_{i} =h_{\theta }\left (x _{i} \right )-y_{i}。至于损失函数 \large \sum_{i=1}^{m}\left (h_{\theta }\left (x _{i} \right )-y_{i} \right )^{2} 为什么需要使用平方和?下面从最小二乘法和极大似然估计两个方面去分析。

     2.1.1 最小二乘法

       误差\large \varepsilon_{i}有正有负,如果直接对\large \varepsilon_{i}求和,则会出现正负抵消的情况,反映不出整体误差情况。如果使用平方和,整体的误差分布不变,所以一般使用平方和做损失函数。

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

                                                            \large RSS\left ( X,h_{\theta }\left ( x_{i} \right ) \right )=\sum_{i=1}^{m}\left ( h_{\theta }\left ( x_{i} \right )-y_{i} \right )^{2}

       但由于每个样本的数据量存在较大的差异,为了消除样本量差异的影响,使用最小化均方误差(MSE)拟合

                                                            \large MSE\left ( X,h_{\theta }\left ( x_{i} \right ) \right )=\frac{1}{m}\sum_{i=1}^{m}\left ( h_{\theta }\left ( x_{i} \right )-y_{i} \right )^{2}

       所以得到损失函数

                                                            \large J\left ( \theta \right )=\frac{1}{2m}\sum_{i=1}^{m}\left ( h_{\theta }\left ( x_{i} \right )-y_{i} \right )^{2}

       式子中的 \frac{1}{2} 是为了求导计算便利添加的。 

     2.1.2 极大似然估计

       误差\large \varepsilon_{i} =h_{\theta }\left (x _{i} \right )-y_{i}中,误差\large \varepsilon_{i}是独立同分布的,并且服从均值为0方差为\large \sigma ^{2}的高斯分布(也称为正态分布)。补充:正态分布的均值和方差取不同值,得到不同的分布图,但均值为0,方差为1的分布称为标准正态分布。

      其中,高斯分布表达式为:

                                                      \dpi{120} f\left (x \right )=\frac{1}{\sqrt{2\pi }\sigma }exp^{\frac{-\left ( x-\mu \right )^{2}}{2\sigma ^{2}}}

     由于误差服从均值为0方差为\large \sigma ^{2}的高斯分布,所以满足:  

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

     于是得到:

                                                        

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值