• Logistic Regression


    逻辑回归(Logistic Regression,LR)应该是互联网行业使用最广的分类模型了。CTR预估、反作弊、推荐系统等等领域都在大量使用LR模型。近几年,DNN有逐渐取代LR的趋势,但LR仍然有着理论完备、训练速度快、物理意义清晰等优势。对于业务发展初期,LR仍然是首选。最后,LR模型本身并不复杂,成功的关键在于特征工程(Feature Engineering)。特征工程以后会有专门的文章描述。

    1.  什么是逻辑回归模型。


    LR本质上是一个线性分类器,决策超平面是:

    [{eta _0} + xeta  = 0]

    LR与线性分类器的区别在于:LR不但给出决策超平面,还根据样本点到超平面的距离,预估样本属于某一类的概率:

    [egin{array}{c}
    p(x;b,w) = frac{1}{{1 + {e^{ - ({eta _0} + xeta )}}}}{ m{ (2)}}\
    = frac{1}{{1 + {e^{frac{{ - ({eta _0} + xeta )}}{{left| eta ight|}}*left| eta ight|}}}};{ m{ (3)}}\
    = frac{1}{{1 + {e^{ - {D_x}*left| eta ight|}}}}{ m{ (4)}}
    end{array}]

    从式(4)中可以看出,样本离决策平面越远(({{D_x}})越大),则分类越置信((p(x;b,w))越接近0,1)。同样,({left| eta   ight|})越小,样本的区分度越大,这也是大多数LR算法都会有一个”正则化(Regularization)”的原因。

     2. LR模型优化函数

    (本节的详细推到过程请见文末附图)

    LR模型预估的是样本属于一个分类的概率。对于iid分布的训练集,优化函数可以写成最大化联合分布概率:

    [L({eta _0},eta ) = {prodlimits_{{ m{all instances}}} {pleft( {{x_i}} ight)} ^{{{ m{y}}_{ m{i}}}}}{left( {1 - pleft( {{x_i}} ight)} ight)^{1 - {y_i}}}{ m{   (5)}}]

    为了简化描述,我们把x看成是(1+m)维的向量(m为feature数),(w)为(eta )。由式(5)可以推导出:

    [egin{array}{c}
    Logleft( {Lleft( w ight)} ight) = Logleft( {{{prodlimits_{{ m{all instances}}} {pleft( {{x_i}} ight)} }^{{{ m{y}}_{ m{i}}}}}{{left( {1 - pleft( {{x_i}} ight)} ight)}^{1 - {y_i}}}} ight)\
    = sumlimits_{i = 1}^n { - Logleft( {{ m{1 + }}{e^{ - w{x_i}}}} ight)} - (1 - {y_i})w{x_i}{ m{ (6)}}
    end{array}]

    要求式(6)的极大值,需要满足以下条件:

    [sumlimits_{i = 1}^n {left( {frac{{partial  - Logleft( {{ m{1 + }}{e^{ - w{x_i}}}} ight) - left( {1 - {y_i}} ight)w{x_i}}}{{partial {w_j}}}} ight)}  = 0]

    [sumlimits_{i = 1}^n {left( {{y_i} - p({x_i};w)} ight)} {x_{ij}} = 0{ m{   (7)}}]

    式(7)并没有解析解。因此,我们无法求出LR模型的(w)。那么,怎么才能求出LR模型的最优(w)呢?下一节,我们会介绍几个常用的数值求解的方法。

     3. 牛顿法

    上面介绍了LR模型以及损失函数。由于没有解析解,下面我们介绍如何通过数值方法寻找最优(w)。数值训练方法很多,但最大名鼎鼎的要属牛顿法了,其他很多方法都是牛顿法衍生出来的。

    牛顿法的本质是在搜索点的的位置,根据当前点的一阶、二阶导数,用二阶泰勒展开({hat f})近似目标函数(f),将这个近似的函数({hat f})的极小值点作为下一个搜寻点。由于二阶泰勒展开后为二次函数,极小值点有解析解。

    目标函数(f)在第k个搜寻点附近的泰勒展开是:

    [hat fleft( w ight) = fleft( {{w^{(k)}}} ight) + left( {w - {w^k}} ight) abla fleft( {{w^k}} ight) + frac{1}{2}{left( {w - {w^k}} ight)^2}Hleft( {{w^k}} ight)]

    极小值点既为下一个搜索点(导数为0)

    [{w^{k + 1}} = {w^k} - {H^{ - 1}}left( {{w^k}} ight) abla fleft( {{w^k}} ight)]

    从上式可以看出,牛顿法的每一次迭代都有Hessian矩阵的逆运算,这是一个非常耗时的过程。因此,有人提出了一些近似牛顿算法(quasi-Newton method)来避免耗时的矩阵求逆运算。相关算法将在以后介绍。

  • 相关阅读:
    iscroll中使用input框的话是导致无法选中input框
    JS中setInterval()和clearInterval()的使用以及注意事项
    连接oracle出现的问题以及解决办法
    Oracle数据库数据显示乱码问题解决方法。
    Android4.4以上Uri转换成绝对路径的工具类
    安卓,调用相机并适配6.0后
    问题-解决
    ORACLE相关
    PL/SQL表结构/数据的导出
    springMVC笔记
  • 原文地址:https://www.cnblogs.com/richqian/p/4505401.html
Copyright © 2020-2023  润新知