码迷,mamicode.com
首页 > 其他好文 > 详细

Logistic Regression

时间:2015-05-15 21:08:54      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

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

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


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

\[{\beta _0} + x\beta  = 0\]

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

\[\begin{array}{c}
p(x;b,w) = \frac{1}{{1 + {e^{ - ({\beta _0} + x\beta )}}}}{\rm{ (2)}}\\
= \frac{1}{{1 + {e^{\frac{{ - ({\beta _0} + x\beta )}}{{\left\| \beta \right\|}}*\left\| \beta \right\|}}}}\;{\rm{ (3)}}\\
= \frac{1}{{1 + {e^{ - {D_x}*\left\| \beta \right\|}}}}{\rm{ (4)}}
\end{array}\]

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

 2. LR模型优化函数

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

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

\[L({\beta _0},\beta ) = {\prod\limits_{{\rm{all instances}}} {p\left( {{x_i}} \right)} ^{{{\rm{y}}_{\rm{i}}}}}{\left( {1 - p\left( {{x_i}} \right)} \right)^{1 - {y_i}}}{\rm{   (5)}}\]

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

\[\begin{array}{c}
Log\left( {L\left( w \right)} \right) = Log\left( {{{\prod\limits_{{\rm{all instances}}} {p\left( {{x_i}} \right)} }^{{{\rm{y}}_{\rm{i}}}}}{{\left( {1 - p\left( {{x_i}} \right)} \right)}^{1 - {y_i}}}} \right)\\
= \sum\limits_{i = 1}^n { - Log\left( {{\rm{1 + }}{e^{ - w{x_i}}}} \right)} - (1 - {y_i})w{x_i}{\rm{ (6)}}
\end{array}\]

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

\[\sum\limits_{i = 1}^n {\left( {\frac{{\partial  - Log\left( {{\rm{1 + }}{e^{ - w{x_i}}}} \right) - \left( {1 - {y_i}} \right)w{x_i}}}{{\partial {w_j}}}} \right)}  = 0\]

\[\sum\limits_{i = 1}^n {\left( {{y_i} - p({x_i};w)} \right)} {x_{ij}} = 0{\rm{   (7)}}\]

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

 3. 牛顿法

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

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

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

\[\hat f\left( w \right) = f\left( {{w^{(k)}}} \right) + \left( {w - {w^k}} \right)\nabla f\left( {{w^k}} \right) + \frac{1}{2}{\left( {w - {w^k}} \right)^2}H\left( {{w^k}} \right)\]

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

\[{w^{k + 1}} = {w^k} - {H^{ - 1}}\left( {{w^k}} \right)\nabla f\left( {{w^k}} \right)\]

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

 

Logistic Regression

标签:

原文地址:http://www.cnblogs.com/richqian/p/4505401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!