【机器学习】逻辑斯蒂回归原理推导与求解

1.概念

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

2.特点

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

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

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

3.逻辑斯蒂分布

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

                                             F ( x ) = P ( X \leq x ) = \frac { 1 } { 1 + e ^ { - ( x - \mu ) / \gamma } }

                                             f ( x ) = F ^ { \prime } ( x ) = \frac { e ^ { - ( x - \mu ) / \gamma } } { \gamma \left( 1 + e ^ { - ( x - \mu ) / \gamma ) ^ { 2 } } \right. }

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

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

480像素,Logisticpdfunction.svg.png,45.2kB

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

480像素,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}

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

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

4.逻辑斯蒂回归模型

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

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

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

                                             y = \left\{ \begin{array} { c c } { 0 , } & { z < 0 } \\ { 0.5 } & { z = 0 } \\ { 1 } & { z > 0 } \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 } , \dots , w _ { d } \right)x就成为了x _ { i } = \left( 1 , x _ { i 1 } , \dots , x _ { i d } \right)z = w ^ { T } x + b就成为了z = {w^T}x,代入(1)中得到:

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

(2)可以变换为:

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

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

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

                                             \ log \ frac {​{p \ left({y = 1 \ left |  {X;  w} \ right。} \ right)}} {​{p \ left({y = 0 \ left |  {X;  w} \对。} \ 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} \对)}}          (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是真正参数的概率。似然函数为:

                           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) }}}}} ^ {​{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)} \ {端阵列}          (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)

5. 梯度下降法求参数

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

求偏导:

                                    \ 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回归)

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
逻辑回归是一种用于二分类问题的机器学习算法,它通过建立一个逻辑回归模型来预测样本的类别概率。在推导逻辑回归算法的数学原理时,我们将使用最大似然估计的方法。 假设我们有一个训练数据集,包含n个样本点。每个样本点由输入向量x和对应的类别标签y组成,其中x ∈ R^d,y ∈ {0, 1}。 逻辑回归的目标是建立一个模型,能够根据输入向量x预测出样本属于类别1的概率P(y=1|x)。 为了建立逻辑回归模型,我们使用逻辑函数(或称为sigmoid函数)将线性模型的输出转化为概率值。逻辑函数的形式为: g(z) = 1 / (1 + e^(-z)) 其中,z是线性模型的输出。在逻辑回归中,我们假设线性模型可以表示为: z = w^Tx + b 其中,w是权重向量,b是偏置项。 根据最大似然估计的思想,我们希望找到一组最优的参数w和b,使得在给定训练数据集下,模型对每个样本属于类别1的概率P(y=1|x)尽可能接近其真实标签y。 假设训练数据集中的样本是独立同分布的,我们可以构造似然函数来描述模型的拟合度。对于一个样本点(x, y),似然函数可以表示为: L(w, b) = P(y=1|x)^y * P(y=0|x)^(1-y) 为了简化计算,我们可以将似然函数取对数,得到对数似然函数: l(w, b) = log(L(w, b)) = y * log(P(y=1|x)) + (1-y) * log(P(y=0|x)) 我们的目标是最大化对数似然函数。为了实现这个目标,我们可以通过最小化负对数似然函数来转化为一个优化问题: minimize: -l(w, b) 接下来,我们可以使用梯度下降等优化算法来求解上述优化问题。通过计算负对数似然函数的梯度,并不断更新参数w和b,直到收敛为止。 具体地,我们可以计算负对数似然函数关于参数w和b的偏导数,并进行参数更新。更新规则可以表示为: w := w - α * ∂l/∂w b := b - α * ∂l/∂b 其中,α是学习率,控制参数更新的步长。 通过迭代执行上述更新步骤,我们可以逐渐优化参数w和b,找到最大似然估计下的最优解。 总结起来,逻辑回归算法的数学原理是通过最大似然估计的方法,构建逻辑回归模型,将线性模型的输出通过逻辑函数转化为概率值。通过最小化负对数似然函数,使用梯度下降等优化算法来求解模型的参数。最终,我们可以根据模型的参数来预测样本属于类别1的概率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值