美文网首页
Logistic回归理论与模型简介

Logistic回归理论与模型简介

作者: StataPython数据分析 | 来源:发表于2020-11-04 23:16 被阅读0次

    本文作者:陈 鼎,中南财经政法大学统计与数学学院
    文字编辑:任 哲
    技术总编:张馨月

    (一) 线性模型与岭回归

    1.线性模型

      给定由m个属性表示的特征向量X=(x1,x2,x3,...,xm),其中xi是特征向量X在第i个属性上的取值,线性模型(linear model)通过构造一个特征向量的线性组合来表示预测值f(x)与特征向量X之间的函数关系,其一般表示形式如下:
    f(x) = w_1x_1+w_2x_2+w_3x_3+...+w_mx_m+b
      利用矩阵方法可以表示为:
    f(x) = W^T X +b
      其中W = (w1,w2,....,wm),通过特定算法求解出W矩阵与常数项b,线性模型就可以确定。

      为了求解系数矩阵W与常数项b,给定样本数据集(x1,y1),(x2,y2),(x3,y3),...(xn,yn),我们考虑优化如下损失函数:
    Loss(y,f(x,w)) = \sum_{i=1}^n[y_i-f(xi,wi)]^2 \overset{def}{=}\sum_{i=1}^ne_i^2
      观察上述损失函数,易知损失函数为凸函数,具唯一最小值。此处损失函数又叫均方误差,基于均方误差最小化进行模型求解的方法称为最小二乘法(ordinary least squares)。将损失函数分别对W与b求偏导数并令偏导数为0,所需公式如下:
    \frac{\partial Loss(y,f(x,w)) }{\partial w} = 0

    image.png

      求解方程组,得到W的最小二乘估计:
    \hat{W} = (X^TX)^{-1}X^TY
      最小二乘估计量具有线性,无偏性,方差最小的优良统计性质。

    2.岭回归

      观察正规方程组的解,当X转置与X矩阵相乘得到的矩阵不可逆(即特征数量远大于训练样本个数)时,将无法通过最小二乘得到W的估计;同时,在训练模型时易会出现过拟合的情况。为了解决上述问题,常用的方是引入正则化项,优化后得到正则化框架如下:
    argmin[Loss(y,f(x,w))+\lambda P(w)]
      其中Loss为损失函数,P(w)为惩罚项(Penalty),lambda为正则化力度为超参数。常用的惩罚项有L1(Lasso)与L2(Ridge,即岭回归),小编将以L2为例,简要说明其原理。

      岭回归,又称权值衰减,其惩罚项为W的转置乘W矩阵,令
    J(w) =\sum_{i=1}^n[y_i-f(xi,wi)]^2 +\lambda W^TW
      对J(w)函数求一阶偏导数并令其为0,求得W的最优解为:
    \hat{W} = (X^TX+\lambda I)^{-1}X^TY
      其中I为单位矩阵,观察上述估计量,X转置X为半正定矩阵,加了lambda倍的单位矩阵后显然可逆,即岭回归很好地解决了原估计量中矩阵不可逆的问题。

    (二) Logistic回归与sigmod函数

    1.线性分类与Logistic回归

      线性分类(Liner Classification)旨在寻找一个激活函数,将线性回归问题转换成一个线性分类问题。线性分类问题分为两大类,即硬分类与软分类。硬分类是输入一个值(f(x)),返回一个确定的类别(y={0,1});软分类则输入一个值(f(x)),返回这个样本属于某种类别的概率p(即y=[0,1])。硬分类的代表为感知机、线性判别分析(Fisher LDA),而软分类则包括了logistic回归,朴素贝叶斯分类器(naivebayes classifier),高斯判别分析(Gaussian discriminant analysismodel)等。
    线性回归\overset{激活函数或降维方法}{\Longrightarrow} 线性分类
      Logistic回归是一个著名的线性分类算法,利用Logistic回归可以将线性回归问题很好地转化成一个线性二分类问题。由线性模型的原理可知,预测值f(x,W)是一个区间为实数集R的连续型变量;而Logistic回归通过激活函数将预测值转换到(0,1)区间上的对应输出,输出结果代表样本属于"正例"类别的概率p。若概率p>0.5,分类器则判别样本属于正例;若概率p<0.5,则分类器判别样本属于反例。需要注意的是,在Python的sklearn模块中,默认将取训练集中数目较少的类别视为正例。

    2.Sigmod函数

      Sigmod函数是一个单调递增的平滑曲线,是Logistic回归中很好的激活函数。Sigmod函数表达式与图像如下:

    h(x,w)=g(z)= \frac{1}{1+e^{-z}}

    image

      图1.Sigmod分布函数,x轴为输入的f(x,W)预测值,纵坐标为对应分类概率值p

      从直观上看,给定一个线性模型中的样本预测值f(x,W),我们总能在sigmod函数中找到一个(0,1)之间的实数与f(x)一一对应,该实数表示样本属于正例类别的概率p。从数学角度,Sigmod函数求出了给定f(x,W)条件下的该类别属于某个类别的条件概率:
    P(样本属于1类|f(x,w)) =h(x,w) = \frac{1}{1+e^{-f(x,w)}}

    P(样本属于0类|f(x,w)) =1-h(x,w) = 1-\frac{1}{1+e^{-f(x,w)}}

    (三) 优化策略

      在确定模型之后,我们需要确定一个最合适的判定标准,在所有的可能模型集合中找出一个最优的模型(即确定W),就需要用到损失函数。在Logistic回归中,常用的损失函数为对数似然损失函数。其函数表达式由最大似然估计法(MLE)导出,表达式如下:
    cost(h(x,w),y)= \begin{cases} -log(h(x,w)) & y=1 \\ -log(1-h(x,w)) & y=0 \end{cases}
      考虑优化如下损失函数:
    argmin[cost(h(x,w),y) = \sum_{i=1}^n-y_ilog(h(x,w))-(1-y_i)log(1-h(x,w)))]
      该损失函数本质上为信息论中的交叉熵(Cross Entropy)的相反数,损失函数数值越小,则该模型分类的准确率就越高。

    image

      图2.当样本真实结果为正例(1)时,预测该样本为正例类别的把握(概率)越大,则对数损失的函数值越小(图源网络)

    (四) 算法

      梯度下降法(gradient descent)是求解无约束最优化问题的一种常用统计方法。梯度的方向是函数值增大速度最快的方向。计算一个函数的最小值,我们随机选取一个初始点,让该点往该点梯度的反方向一步一步“移动”,不断更新,进行迭代,若该点最后的位置趋于不变(即函数值趋于收敛),则停止迭代过程,迭代过程如下:
    x^{(1)}= x^{(0)} -\alpha \nabla g(x^{(0)})

    x^{(2)}= x^{(1)} -\alpha \nabla g(x^{(1)})

    ....

    x^{(n)}= x^{(n-1)} -\alpha \nabla g(x^{(n-1)})

      其中,α为学习率,即每次迭代时迈出的“步长”;▽g(x)为梯度,表示每次迭代时移动的方向。在求解一元函数极小值问题中,梯度等价于函数在该点的一阶导数。需要注意的是,在噪声相对较大的模型中,梯度下降法容易陷入"局部极小值"的问题,此时可以适当调整步长,或是利用随机梯度下降法(stochastic gradient descent)优化算法。

    image

                 图3.梯度下降的可视化迭代过程(图源网络)

    相关文章

      网友评论

          本文标题:Logistic回归理论与模型简介

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