美文网首页
[回归] 线性回归 Linear Regression

[回归] 线性回归 Linear Regression

作者: 数据麻瓜 | 来源:发表于2018-11-05 11:40 被阅读0次

    线性回归是统计/机器学习中最基础的一个模型,在线性回归的基础上可以拓展出之后相当多的模型,例如逻辑回归。

    线性回归是监督学习的一种,主要用来预测连续变量。
    模型:Y_i=\beta_0+\beta_1X_1^{(i)}+...+\beta_{m-1}X^{(i)}_{m-1}+\epsilon_i
    矩阵的表示形式:{Y}_{n \times 1} = X_{n \times m}{\beta}_{m \times 1}+\epsilon_{n \times 1}

    矩阵形式中默认X_{i,1}=1,因为把截距也放入了\beta的矩阵中。
    如果要避免这一点的话可以提前对列进行中心化处理,这样的话模型中的\beta_0一项就不存在了,同时进行中心处理也有助于模型的拟合。

    线性回归模型有以下的一些Assumptions:

    • \epsilon_i \sim iid with N(0, \sigma^2)
    • 对于任意i \not= j,Cov(\epsilon_i,\epsilon_j)=0

    有了模型以后,我们需要估计未知参数的值,即\hat{\beta},一般来说在机器学习中有两种常用的参数估计方法,一种是通过最小化损失函数(更常用一些),另一种是通过最大似然估计(一般用于有概率分布的模型)。

    一般对于一个模型来说,这两种估计出来的值会相同,个人的理解是在选择损失函数的时候,我们会偏好结果和最大似然估计相同的那一个。那为什么要引入损失函数这个东西呢?因为这样的话就可以把所有的算法变成一个最优化的问题。另外,确定了损失函数之后,如果我们要加入罚函数/正则化的化,也可以直接在最优化损失函数的时候加项,会比用最大似然估计方便很多。这当然以上这段只是个人猜测。

    先来看最小化损失函数的方法,一般对于回归问题,我们会选用Least Square 来估计,损失函数为均方误差
    L(\beta)=\sum_{i=1}^n (Y_i-\hat{Y}_i)^2=(Y-X\beta)^T(Y-X\beta)_{n \times 1}
    =Y^TY-Y^TX\beta-\beta^TX^TY+\beta^TX^TX\beta

    \frac{\partial L}{\partial \beta}=-2X^TY+2X^TX\beta=0
    \therefore \hat{\beta} = (X^TX)^{-1}X^TY

    为什么要用LS呢?因为Least Square的结果是所有无偏估计中方差最小的估计量(原因:LS的结果和MLE相同,根据Cramer-Rao Lower Bound和MLE的关系可知MLE如果是无偏估计的话,是所有无偏估计中方差最小的估计量),但是有时候不一定无偏估计就是最好的估计量,因为MSE=误差+方差,如果一个估计量误差小但方差很大的话,最终的MSE不一定是最优,那这点是可以通过一些办法进行优化的。

    Notes:
    为什么无偏<- E[X\hat{\beta}]=E[X(X^TX)^{-1}X^Ty]=E[XX^{-1}{X^T}^{-1}{X^T}y]=y

    然后再看最大似然估计,因为Y\sim N(f(x), \sigma^2),所以其似然函数 为
    L(\theta)=-\frac{N}{2}log(2\pi)-Nlog(\sigma)-\frac{1}{2 \sigma^2}\sum_{i=1}^N (y_i-f_\theta(x_i))^2
    ln(L(\theta))求偏导==0,就可得到和LS一样的结果。

    知道了参数估计后,我们就得到了\hat{\beta}这个矩阵,但可以发现这个矩阵有(X^TX)^{-1}这一项,也就意味着需要进行矩阵的逆运算,那在实际中,如果p>>n时,有可能会出现X可能不是满秩矩阵->X^TX可能是奇异矩阵->\beta不唯一的情况,那一般在统计上出现这种情况,会在原来的项上加上一个I,即(X^TX+I)^{-1},那如果加上罚函数的话也可以避免这种情况。

    确定了模型,估计了未知参数之后,只要我们有了数据,就可以轻松的来训练和预测。等到训练结束后,我们可以从模型中得知其决策边界是线性的。注意,我们所谓的线性,指的是Y与参数间的线性关系,并非是与X_1,..,X_m之间的

    有了以上的一些了解之后,我们再来看模型选择这个问题,即如果我们的数据有很多个feature,我们该怎么选择要把哪些变量放入模型呢?

    • hard-thresholding 类:

      • AIC/BIC/AICC <- 遍历所有有可能的feature组合,然后选最优的一个
      • Forward Stepwise Selection: 从只含有Intercept项的模型开始,根据一些指数来选择下一个加入模型的变量->贪婪算法,给出的不一定是最优的模型
      • Backward Stepwise Selection: 从full model 开始,根据一些指数来选择下一个剔除模型的变量
      • Forward-Stagewise Regression: -->(LAR)


        ESL P74
    • soft-thresholding -- Shrinkage Method(也可以看做是regularization):
      - Ridge Regression(L2): \hat{\beta}^{ridge}=argmin_\beta\{\sum_{i=1}^N(y_i-\beta_0\sum_{j=1}^px_{ij}\beta_j)^2+\lambda\sum_{j=1}^p\beta_j^2\} -> \hat{\beta}^{ridge}=(X^TX+\lambda I)^{-1}X^Ty

    E[X\hat{\beta}^{ridge}]=E[X(X^TX+\lambda I)^{-1}X^Ty]\not=y ->不是无偏估计
    Var(\hat{\beta}^{ridge})=Var((X^TX+\lambda I)^{-1}X^Ty)=AVar(y)A^T,A=(X^TX+\lambda I)^{-1}X^T,可知{\beta}^{ridge}<{\beta}^{OLS} ->Variance比普通的线性回归要小

        - Lasso(L1)
        - Ridge VS Lasso: Lasso会从模型中删除不重要的变量,ridge会保留
            - 对于Ridge and Lasso而言, 最优化问题还可以写成以下形式:
    

    \beta=argmin \sum(y_i-\beta_0-\sum x_{ij}\beta_j)^2,s.t.|\beta|^q<le t,q=1是Lasso,q=2是Ridge,注意,q=1是最小的q是的该函数凸函数
    用图来看

    https://www.researchgate.net/figure/Illustration-of-L1-left-vs-L2-right-regularization-Source-HTF01-Figure-312_fig7_226826838
    两个方法都会选择第一个椭圆与阴影部分的相交点,从图来看,由于L1的restriction是一个菱形,所以焦点更有可能出现在4个顶点上,而这也就意味着有一个 \beta_i =0->有的feature会从模型中被剔除。

    模型优化方向:

    • 加入\beta_p x_i^2这样的项来帮助做非线性的拟合,形成更复杂的模型,f(x)=\sum_{k=1}^K h_k(x) \beta_k可以通过pairwise plot 来查看x_p与y的相关性,基于图片来判断是否需要将该feature进行transform处理。一般来说的h_k(x)有多项式,对数化等等
    • 对于类别变量,对其进行dummy variable的处理
    • 可以引入X_1X_2这样的interaction变量

    ESL: Local regression fits linear models by locally weighted least squares, rather than fitting constants locally

    • 不确定是不是类似LOESS的意思

    • 优缺点:

      • 简单,可以给出变量如何影响结果的信息,可解释
      • 效果好,尤其是对于小的dataset/稀疏的data/low sigmal-to-noise data
    1. Notes:
    • 回归模型只是相关性,并不是因果性
    • 但做test的时候,p值大有时候不一定说明该参数和Y的相关性弱。因为p值的给出是基于其他参数出现的情况下是否可以抛弃该变量。

    相关文章

      网友评论

          本文标题:[回归] 线性回归 Linear Regression

          本文链接:https://www.haomeiwen.com/subject/pzghxqtx.html