机器学习-逻辑回归-参数迭代公式推导

转载 2015年11月16日 21:47:09

原始出处:http://sbp810050504.blog.51cto.com/2799422/1608064

在《机器学习实战》一书的第5章中讲到了Logistic用于二分类问题。书中只是给出梯度上升算法代码,但是并没有给出数学推导。故哪怕是简单的几行代码,依然难以理解。

 

对于Logistic回归模型而言,需要读者具有高等数学、线性代数、概率论和数理统计的基础的数学基础。高等数学部分能理解偏导数即可;线性代数部分能理解矩阵乘法及矩阵转置即可;概率论和数理统计能理解条件概率及极大似然估计即可。

有《高等代数》(浙大)、概率论与数理统计(浙大)、线性代数(同济大学)三本数学足矣。

 

Logistic回归用于二分类问题,面对具体的二分类问题,比如明天是否会下雨。人们通常是估计,并没有十足的把握。因此用概率来表示再适合不过了。

 

Logistic本质上是一个基于条件概率的判别模型(DiscriminativeModel)。利用了Sigma函数值域在[0,1]这个特性。

                           

wKioL1TEnTjA2NPbAAAZDt4MjeU599.jpg

函数图像为:

wKioL1TEnTiD9dUWAAB7G34zbW0271.jpg

通过sigma函数计算出最终结果,以0.5为分界线,最终结果大于0.5则属于正类(类别值为1),反之属于负类(类别值为0)

如果将上面的函数扩展到多维空间,并且加上参数,则函数变成:

wKiom1TEnF3xBqCrAAAtwFC_Y7M318.jpg

其中X是变量,θ是参数,由于是多维,所以写成了向量的形式,也可以看作矩阵。θT表示矩阵θ的转置,即行向量变成列向量。θTX是矩阵乘法。(高数结合线性代数的知识)

 

如果我们有合适的参数向量θ,以及样本x,那么对样本x分类就可以通过上式计算出一个概率值来,如果概率值大于0.5,我们就说样本是正类,否则样本是负类。

比如,对于“垃圾邮件判别问题”,对于给定的邮件(样本),我们定义非垃圾邮件为正类,垃圾邮件为负类。我们通过计算出的概率值即可判定邮件是否是垃圾邮件。

 

接下来问题来了,如何得到合适的参数向量θ呢?

 

由于sigma函数的特性,我们可作出如下的假设:

wKiom1TEnF2hTs5PAABLtf3DlpQ603.jpg

上式即为在已知样本X和参数θ的情况下,样本X属性正类(y=1)和负类(y=0)的条件概率。

 

将两个公式合并成一个,如下:

wKioL1TEnTnA8ZKSAAA8rx3sZUM132.jpg

既然概率出来了,那么最大似然估计也该出场了。假定样本与样本之间相互独立,那么整个样本集生成的概率即为所有样本生成概率的乘积:

wKioL1TEnTmCIvnhAACSHATjZaY077.jpg

其中,m为样本的总数,y(i)表示第i个样本的类别,x(i)表示第i个样本,需要注意的是θ是多维向量,x(i)也是多维向量。

(接下来从《概率论与数理统计》转到《高等数学》)

为了简化问题,我们对整个表达式求对数,(将指数问题对数化是处理数学问题常见的方法)

wKiom1TEnF7glwX2AABxj9lYg18460.jpg

上式是基本的对数变换,高中数学而已,没有复杂的东西。

 

满足似然函数(θ)的最大的θ值即是我们需要求解的模型。

 

梯度上升算法

 

       如此复杂的函数,如何求满足函数(θ)最大值的参数向量θ呢?

 

       如果问题简化到一维,就很好办了。假如需要求取函数:

              wKioL1TEnTnRW2_ZAAAUUKd9zpQ091.jpg

       的最大值。

       函数图像如下:

wKioL1TEnTyw8v6ZAAB9RCJA5Vs936.jpg

函数的导数为:

wKiom1TEnGGBvHtvAAATGsAEI4c709.jpg

所以 x=1.5即取得函数的最大值1.25

 

但是真实环境中的函数不会像上面这么简单,就算求出了函数的导数,也很难精确计算出函数的极值。此时我们就可以用迭代的方法来做。就像爬坡一样,一点一点逼近极值。爬坡这个动作用数学公式表达即为:

wKioL1TEnTyxHegQAAAgSFtr9U4431.jpg 

其中,α为步长。

求上面函数极值的Python代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
def f_prime(x_old):
         return -2*x_old+3
  
def cal():
         x_old=0
         x_new=6
         eps=0.01
         presision=0.00001
         whileabs(x_new-x_old)>presision:
                   x_old=x_new
                   x_new=x_old+eps*f_prime(x_old)
         return x_new


结果为:1.50048

 

回到Logistic Regression问题,我们同样对函数求偏导。

wKiom1TEnGHhkXbMAAFCAkpV7Zs421.jpg

 

这个公式有点复杂,但是依然只是基本的导数变换,待我细细拆解。这里需要的数学知识无外乎两点:函数的和、差、积、商求导法则和复合函数的求导法则(高等数学P88)

先看:

wKiom1TEnGGgVCkNAABH3qNWcA4288.jpg

其中:

wKiom1TEnfKTaMuVAABFm0Px270384.jpg

再由:

wKioL1TEnT-xsSdfAABva83f19A126.jpg

可得:

wKiom1TEnGPTqcd8AAAxlx9xE7w874.jpg

接下来就剩下第三部分:

 wKioL1TEnT_jreuTAAA53p9A8ec077.jpg

(这个公式应该很容易理解,简单的偏导公式)

还有就是:

wKioL1TEnwPzRXsWAAAtwFC_Y7M157.jpg

综合三部分即得到:

wKiom1TEnGTAhlbMAAAfcirD1mM147.jpg

 

因此,梯度迭代公式为:

wKiom1TEnGSDl1JuAAAqXOo511s178.jpg

      

       结合本式再去理解《机器学习实战》中的代码就很简单了。


Logistic Regression(逻辑回归)原理及公式推导

Logistic Regression(逻辑回归)是机器学习中一个非常非常常见的模型,在实习生环境中也常常被使用,是一种经典的分类模型(不是回归模型)。本文主要介绍了Logistic Regressi...
  • programmer_wei
  • programmer_wei
  • 2016-07-30 15:18:13
  • 39715

逻辑回归公式推导过程

1 逻辑回归模型     回归是一种极易理解的模型,就相当于y=f(x),表明自变量x与因变量y的关系。最常见问题有如医生治病时的望、闻、问、切,之后判定病人是否生病或生了什么病,其中的望闻问切...
  • weixin_30014549
  • weixin_30014549
  • 2016-10-18 17:34:57
  • 4275

Logistic回归原理及公式推导

原文见 http://blog.csdn.net/acdreamers/article/details/27365941
  • AriesSurfer
  • AriesSurfer
  • 2014-11-20 11:48:39
  • 107194

逻辑斯蒂回归公式推导

逻辑斯蒂回归,一个不是很恰当的理解就是在线性回归的基础上加了一个sigmoid函数。将其输出空间映射到0-1上面来。 然后映射后的这个值就代表他被分为类别1的概率。话不多说。这个就是逻辑回归(线性回...
  • u014422406
  • u014422406
  • 2017-04-30 11:57:11
  • 1439

机器学习--Logistic回归计算过程的推导

(很多讲逻辑回归的文章都没有给出详细的推导,只是列出最后的计算公式,今天在网上看到一篇解释得非常详细的文章,赶紧转载一下: 【机器学习笔记1】Logistic回归总结(http://blog.csd...
  • ligang_csdn
  • ligang_csdn
  • 2016-12-23 14:12:42
  • 14251

逻辑回归原理及推导过程

逻辑回归处理的是分类问题,具体来说,是处理二分类问题。为了实现逻辑回归分类器,我们可以在线性回归的基础上(即每个特征乘以一个回归系数后相加),添加一个sigmoid函数,进而得到一个范围在0-1之间的...
  • Flying_sfeng
  • Flying_sfeng
  • 2017-09-16 12:03:58
  • 2047

十七、逻辑回归公式的数学推导

机器学习中一些重要的公式,比如逻辑回归概率公式,多数情况下我们知道何时拿来用,但是它们都是怎么得来的呢,本节让我们详细探讨下 请尊重原创,转载请注明来源网站www.shareditor.com以及原...
  • jiangjingxuan
  • jiangjingxuan
  • 2017-01-25 10:27:18
  • 415

[机器学习算法详解]逻辑斯蒂回归模型

逻辑斯蒂回归模型是一种分类模型,其目的解决分类问题而非回归问题。logistic回归是一个判别模型,直接学习后验概率分布,其学习算法可以理解为极大似然估计法。...
  • sinat_26376671
  • sinat_26376671
  • 2015-04-14 18:46:54
  • 5286

逻辑斯蒂回归参数梯度推导

逻辑斯蒂回归参数梯度推导
  • sinat_26376671
  • sinat_26376671
  • 2015-04-14 18:44:36
  • 1257

逻辑斯蒂回归(Logistic Regression)

LR回归,虽然这个算法从名字上来看,是回归算法,但其实际上是一个分类算法,学术界也叫它logit regression, maximum-entropy classification (MaxEnt)...
  • daunxx
  • daunxx
  • 2016-07-03 19:57:32
  • 12935
收藏助手
不良信息举报
您举报文章:机器学习-逻辑回归-参数迭代公式推导
举报原因:
原因补充:

(最多只允许输入30个字)