逻辑斯蒂回归原理推导与求解

一、概念

逻辑斯蒂回归又称为“对数几率回归”,虽然名字有回归,但是实际上却是一种经典的分类方法,其主要思想是:根据现有数据对分类边界线(Decision Boundary)建立回归公式,以此进行分类。

二、特点

1. 优点:计算代价不高,具有可解释性,易于实现。。不仅预测出类别,而且可以得到近似概率预测,对许多需要利用概率辅助决策的任务很有用。

2. 缺点:容易欠拟合,分类精度可能不高。

3. 使用数据类型:数值型和标称型数据。

三、逻辑斯蒂分布

 逻辑斯蒂分布的分布函数和密度函数如下:

               F\left( x \right) = P\left( {X \le x} \right) = \frac{1}{{1 + {e^{{{ - \left( {x - \mu } \right)} \mathord{\left/ {\vphantom {{ - \left( {x - \mu } \right)} \gamma }} \right. \kern-\nulldelimiterspace} \gamma }}}}}

               f\left( x \right) = F'\left( x \right) = \frac{{{e^{{{ - \left( {x - \mu } \right)} \mathord{\left/ {\vphantom {{ - \left( {x - \mu } \right)} \gamma }} \right. \kern-\nulldelimiterspace} \gamma }}}}}{{\gamma {{\left( {1 + {e^{{{ - \left( {x - \mu } \right)} \mathord{\left/ {\vphantom {{ - \left( {x - \mu } \right)} \gamma }} \right. \kern-\nulldelimiterspace} \gamma }}}} \right)}^2}}}

其中,\mu是位置参数,\gamma > 0为形状参数。

逻辑斯蒂分布在不同的\mu和 \gamma的情况下,其概率密度函数p\left( {x;\mu ,\lambda } \right)的图形:

480px-Logisticpdfunction.svg.png-45.2kB

逻辑斯蒂分布在不同的\mu和 \gamma的情况下,其概率分布函数P\left( {x;\mu ,\lambda } \right)的图形: 

480px-Logistic_cdf.svg.png-49.9kB

逻辑斯蒂分布函数的图形是一条S形曲线(sigmoid curve),该曲线以点\left( {\mu ,\frac{1}{2}} \right)为中心对称,即满足:

               F\left( { - x + \mu } \right) - \frac{1}{2} = - F\left( {x + \mu } \right) + \frac{1}{2}

曲线在中心附近增长速度较快,在两端增长速度较慢。形状参数\gamma的值越小,曲线为中心附近增长得越快。

\mu = 0s = 1时,逻辑斯蒂概率分布函数就是我们逻辑斯蒂回归的sigmoid函数y = \frac{1}{{1 + {e^{ - z}}}}

四、逻辑斯蒂回归模型

对于分类问题,我们想要一个函数能够通过所有的输入预测出类别。

考虑较为简单的二分类情况,给定一个数据集D = \left\{ {\left( {x{}_i,{y_i}} \right)} \right\}_{i = 1}^m,其中,x{}_i \in R^dy{}_i \in \left\{ {0,1} \right\}

从线性回归模型产生的预测值z = {w^T}x + b是实值,为了分类,需要将z转换为0/1值。此时可以采用单位阶跃函数进行z到0/1的映射:

y = \left\{ {\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} {0,}\\ {0.5}\\ 1 \end{array}}&{\begin{array}{*{20}{c}} {z < 0}\\ {z = 0}\\ {z > 0} \end{array}} \end{array}} \right.

当预测值z > 0时,将其判为正例;当预测值z<0时,将其判为负例。

但该函数不连续,为了便于后续计算,我们希望得到一个连续可微的近似替代函数,因此我们选取了对数几率函数(logistic regression)作为替代函数,对数几率函数是一种sigmoid函数:

               y = \frac{1}{{1 + {e^{ - z}}}}            (1)

这样,就可以将任意输入映射到\left[ {0,1} \right]区间内,实现由值到概率的转换。

为便于讨论,使b = {w_0} \cdot x{}_0,其中{x_0} = 1。此时,w就成为了w = \left( {{w_0},{w_1}, \ldots ,{w_d}} \right)x就成为了x_i=\left( {{1},{x_{i1}}, \ldots ,{x_{id}}} \right)z = {w^T}x + b就变成了z = {w^T}x。将z = {w^T}x代入(1)中得到:

               y = \frac{1}{{1 + {e^{ - {w^T}x}}}}          (2)

(2)可以变换为:

               \log \frac{y}{{1 - y}} = {w^T}x          (3)

若将y视为样本x为正例的可能性,则1-y视为样本x为反例的可能性。两者的比值\frac{y}{{1 - y}}称谓称为“几率(odds)”,,一个时间的几率就是指该事件发生的概率与该事件不发生的概率的比值,反映了x作为正例的相对可能性。对几率取对数得到对数几率\log \frac{y}{{1 - y}}(log odds,亦称logit。)。即(2)实际上是用线性回归模型的预测结果去逼近真实标记的对数几率。

此时,若将(2)中的y视为类后验概率p\left( {y = 1\left| x \right.} \right)(就是说,对于样本点x,可以用sigmoid函数的结果来当做该点属于类别1的概率 ),则(3)可重写为:

               \log \frac{{p\left( {y = 1\left| {x;w} \right.} \right)}}{{p\left( {y = 0\left| {x;w} \right.} \right)}} = {w^T}x          (4)

显然可以得到我们希望学得的逻辑斯蒂模型:

               p\left( {y = 1\left| {x;w} \right.} \right) = \frac{{\exp \left( {{w^T}x} \right)}}{{1 + \exp \left( {{w^T}x} \right)}}          (5)

               p\left( {y = 0\left| {x;w} \right.} \right) = \frac{1}{{1 + \exp \left( {{w^T}x} \right)}}          (6)

p\left( {y = 1\left| {x;w} \right.} \right) = \pi \left( x \right),则p\left( {y = 0\left| {x;w} \right.} \right) = 1-\pi \left( x \right)。并将(5)、(6)整合称为一般形式,得到在已知参数w和数据x_i的情况下,预测值为y_i的条件概率:

               p\left( {{y_i}\left| {{x_i};w} \right.} \right) = {\left( {\frac{{\exp \left( {{w^T}{x_i}} \right)}}{{1 + \exp \left( {{w^T}{x_i}} \right)}}} \right)^{{y_i}}}{\left( {\frac{1}{{1 + \exp \left( {{w^T}{x_i}} \right)}}} \right)^{1 - {y_i}}} = {\left( {\pi \left( {{x_i}} \right)} \right)^{{y_i}}}{\left( {1 - \pi \left( {{x_i}} \right)} \right)^{1 - {y_i}}}          (7)

将(7)连乘得到在已知参数w和数据x的情况下,预测值为y的条件概率,这个条件概率在数值上等于,likelihood(w|x,y),也就是在已知现有数据的条件下,w是真正参数的概率,即似然函数(8):

               L\left( w \right) = \prod\limits_{i = 1}^m {p\left( {{y_i}\left| {{x_i};w} \right.} \right) = } \prod\limits_{i = 1}^m {{{\left( {\pi \left( {{x_i}} \right)} \right)}^{{y_i}}}} {\left( {1 - \pi \left( {{x_i}} \right)} \right)^{1 - {y_i}}}          (8)

由于乘法难解,通过对数可以将乘法转换为加法,简化计算。对数似然函数为:

               \begin{array}{l} l\left( w \right) = \log \prod\limits_{i = 1}^m {{{\left( {\pi \left( {{x_i}} \right)} \right)}^{{y_i}}}} {\left( {1 - \pi \left( {{x_i}} \right)} \right)^{1 - {y_i}}}\\ = \sum\limits_{i = 1}^m {\left( {{y_i}\log \pi \left( {{x_i}} \right) + \left( {1 - {y_i}} \right)\log \left( {1 - \pi \left( {{x_i}} \right)} \right)} \right)} \\ = \sum\limits_{i = 1}^m {\left( {{y_i}\log \pi \left( {{x_i}} \right) + \log \left( {1 - \pi \left( {{x_i}} \right)} \right) - {y_i}\log \left( {1 - \pi \left( {{x_i}} \right)} \right)} \right)} \\ = \sum\limits_{i = 1}^m {\left( {{y_i}\log \frac{{\pi \left( {{x_i}} \right)}}{{1 - \pi \left( {{x_i}} \right)}} + \log \left( {1 - \pi \left( {{x_i}} \right)} \right)} \right)} \\ = \sum\limits_{i = 1}^m {\left( {{y_i}{w^T}{x_i} - \log \left( {1 + \exp \left( {{w^T}{x_i}} \right)} \right)} \right)} \end{array}          (9)

似然函数表示样本成为真实的概率,似然函数越大越好,此时我们可以用梯度上升法求最大值,也可以引入一个负号转换为梯度下降法来求解。

代价函数为:

               J\left( w \right) = - \sum\limits_{i = 1}^m {\left( {{y_i}{w^{T}}{x_i} - \log \left( {1 + \exp \left( {{w^T}{x_i}} \right)} \right)} \right)}          (10)

五、梯度下降法求参数

逻辑斯蒂回归学习中通常采用的方法时梯度下降法及拟牛顿法,下面介绍逻辑斯蒂回归中梯度下降法求参数。

求偏导:

               \begin{array}{l} \frac{{\partial J\left( w \right)}}{{\partial w_j}} = - \sum\limits_{i = 1}^m {\left( {{y_i}{x_{ij}} - \frac{{\exp \left( {{w^T}{x_{i}}} \right)}}{{1 + \exp \left( {{w^T}{x_{i}}} \right)}}}{x_{ij}} \right )} \\ {\rm{ = }} - \sum\limits_{i = 1}^m {\left( {{y_i} - \pi \left( {{x_{i}}} \right)} \right)} {x_{ij}} \end{array}          (11)

因此,在使用梯度下降法求解时,每次迭代地更新公式为:

               {w_j}:{\rm{ = }}{{\rm{w}}_j} - \alpha \sum\limits_{i = 1}^m {\left( {{y_i} + \pi \left( {{x_{i}}} \right)} \right)} {x_{ij}}         (12)

参考文献:

1. 《机器学习》第三章对数几率回归-周志华

2. 逻辑回归(logistic regression)的本质——极大似然估计

3. 逻辑回归推导

4. LR回归(Logistic Regression)

猜你喜欢

转载自blog.csdn.net/pxhdky/article/details/82497304