《统计学习方法》之逻辑斯谛回归与最大熵模型

本小结主要介绍逻辑斯谛回归和最大熵模型的一些应用和数据预测方法等等。

1. 简介

逻辑斯谛回归是一个非常经典的二项分类模型,也可以扩展为多分类模型。逻辑斯谛回归模型是从生物种群中得到一个回归模型,它简述了生物种群在存在环境阻力的情况下种群数量变化。逻辑斯谛回归模型和最大熵模型都属于对数线性模型。本小结从机器学习的方法来介绍这两个回归模型。

2. 逻辑斯谛回归

2.1 从生物学角度出发的逻辑斯谛模型

逻辑斯蒂增长模型(Logistic growth model)逻辑斯蒂增长模型又称自我抑制性方程,是关于人口或种群增长的模型。它发现人口/种群增长会因为受到资源限制而达到某个极限。在马尔萨斯《人口原理》中表述,当仅仅考虑到出生率和死亡率的情况下,设 t 0 t_{0} t0时刻的人口总数量为 p ( t 0 ) = p 0 p(t_{0})=p_{0} p(t0)=p0,那么人口增长满足以下的微分方程:
d p d t = k p \frac{dp}{dt}=kp dtdp=kp

这样解这个方程得到
p ( t ) = p 0 e k ( t − t 0 ) p(t)=p_{0}e^{k(t-t_{0})} p(t)=p0ek(tt0)

这是在没有环境阻力情况下的种群的增长模型。当遇到环境阻力的情况下时候,增长到一定的阶段,种群的数量会受到限制,此时并不满足上述种群的增长方程,所以在具有环境阻力条件下,将上述过程中的微分方程改为:
d p d t = r p ( M − p ) M , r > 0 \frac{dp}{dt}=\frac{rp(M-p)}{M},r>0 dtdp=Mrp(Mp),r>0

其中 M M M表示环境中所能容纳种群中最大值。经过计算和推导,得到的种群数量随着时间 t t t变化的关系为:
p ( t ) = M p 0 p 0 + ( M − p 0 ) e − r ( t − t 0 ) p(t)=\frac{Mp_{0}}{p_{0}+(M-p_{0})e^{-r(t-t_{0})}} p(t)=p0+(Mp0)er(tt0)Mp0

上述方程所建立的种群变化的模型称为逻辑斯谛模型。事实上,种群的增长要受到多种因素的影响,这个模型并不能够很全面描述这写因素的影响。其中有一种改进的方式是将原来最基本的微分方程改进为
k = r ( 1 − p M ) α k=r(1-\frac{p}{M})^{\alpha} k=r(1Mp)α

那么微分方程可以描述为:
d p d t = r ( 1 − p M ) α p , α ≥ 0 \frac{dp}{dt}=r(1-\frac{p}{M})^{\alpha}p,\alpha\geq0 dtdp=r(1Mp)αp,α0

很明显,当 α = 0 \alpha=0 α=0的时候为简单的指数增长模型;当 α = 1 \alpha=1 α=1的时候为逻辑斯谛模型。在其他的情况下可以描述一些更为复杂的模型。

2.2 逻辑斯谛分布

定义(逻辑斯谛分布) 设连续随机变量 X X X服从逻辑斯谛分布,这是指 X X X具有以下的分布函数的概率密度函数:
F ( x ) = P { X ≤ x } = 1 1 + e − ( x − μ ) / γ F(x)=P\{X\leq x\}=\frac{1}{1+e^{-(x-\mu)/\gamma}} F(x)=P{Xx}=1+e(xμ)/γ1

f ( x ) = F ′ ( x ) = e − ( x − μ / γ ) γ ( 1 + e − ( x − μ / γ ) ) 2 f(x)=F{'}(x)=\frac{e^{-(x-\mu/\gamma)}}{\gamma(1+e^{-(x-\mu/\gamma)})^{2}} f(x)=F(x)=γ(1+e(xμ/γ))2e(xμ/γ)

式子中, μ \mu μ为位置参数, γ > 0 \gamma>0 γ>0为形状参数。曲线以点 ( μ , 1 2 ) (\mu,\frac{1}{2}) (μ,21)中心对称,等价于:
F ( − x + μ ) − 1 2 = − F ( x − μ ) + 1 2 F(-x+\mu)-\frac{1}{2}=-F(x-\mu)+\frac{1}{2} F(x+μ)21=F(xμ)+21

概率密度函数以及分布函数的曲线图像如下所示:

函数分布图像

2.3 二项逻辑斯谛回归模型

二项逻辑斯谛回归是一种分类模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)来表示,形式为参数化的逻辑斯谛分布。随机变量 X X X是实数,随机变量 Y Y Y取值为 1 1 1或者 0 0 0
定义(逻辑斯谛回归模型) 二项逻辑斯谛回归模型是通过以下的条件概率分布:

P ( Y = 1 ∣ x ) = e x p ( w ⋅ x + b ) 1 + e x p ( w ⋅ x + b ) P(Y=1|x)=\frac{exp(w\cdot{x}+b)}{1+exp(w\cdot{x}+b)} P(Y=1x)=1+exp(wx+b)exp(wx+b)

P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ⋅ x + b ) P(Y=0|x)=\frac{1}{1+exp(w\cdot{x}+b)} P(Y=0x)=1+exp(wx+b)1

其中输入 x ∈ R n x\in{R^{n}} xRn,输出为 Y ∈ { 0 , 1 } Y\in\{0,1\} Y{0,1} w ∈ R n , b ∈ R w\in{R^{n}},b\in{R} wRn,bR是参数, w w w称作权重值向量, b b b是偏置。对上面的公式进行对数变换操作之后得到:
log ⁡ P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = w ⋅ x + b \log\frac{P(Y=1|x)}{1-P(Y=1|x)}=w\cdot{x}+b log1P(Y=1x)P(Y=1x)=wx+b

可见输出 Y = 1 Y=1 Y=1的对数几率是输入 x x x的线性函数。

2.4 模型参数估计

设输入的训练数据集为 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N})\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中, x k ∈ R n , y k ∈ { 0 , 1 } x_{k}\in{R^{n}},y_{k}\in\{0,1\} xkRn,yk{0,1}。这里使用最大似然估计的方法估计模型的参数,从而得到逻辑斯蒂回归模型。

P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1|x)=\pi(x),P(Y=0|x)=1-\pi(x) P(Y=1x)=π(x),P(Y=0x)=1π(x)

那么似然函数为

∏ k = 1 N [ π ( x k ) ] y k [ 1 − π ( x k ) ] 1 − y k \prod_{k=1}^{N}[\pi(x_{k})]^{y_{k}}[1-\pi(x_{k})]^{1-y_{k}} k=1N[π(xk)]yk[1π(xk)]1yk

对数似然函数为
L ( x , w , b ) = ∑ k = 1 N [ y k log ⁡ π ( x k ) + ( 1 − y k ) log ⁡ ( 1 − π ( x k ) ) ] = ∑ k = 1 N y k log ⁡ π ( x k ) 1 − π ( x k ) + log ⁡ ( 1 − π ( x k ) ) = ∑ k = 1 N [ y k ( w ⋅ x k ) + b − log ⁡ ( 1 + e x p ( w ⋅ x k + b ) ) ] L(x,w,b)=\sum_{k=1}^{N}[y_{k}\log\pi(x_{k})+(1-y_{k})\log(1-\pi(x_{k}))]\\ =\sum_{k=1}^{N}y_{k}\log\frac{\pi(x_{k})}{1-\pi(x_{k})}+\log(1-\pi(x_{k}))\\ =\sum_{k=1}^{N}[y_{k}(w\cdot{x_{k}})+b-\log(1+exp(w\cdot{x_{k}}+b))] L(x,w,b)=k=1N[yklogπ(xk)+(1yk)log(1π(xk))]=k=1Nyklog1π(xk)π(xk)+log(1π(xk))=k=1N[yk(wxk)+blog(1+exp(wxk+b))]

所以这样通过求解 L ( x , w , b ) L(x,w,b) L(x,w,b)的极大值即可以得到 w , b w,b w,b的估计值。一般来说,对于逻辑斯蒂回归函数问题中,采用梯度下降算法和拟牛顿的方法来计算,在后面我们会推导这个求解过程。假设得到了求解值 w ^ , b ^ \hat w,\hat b w^,b^,那么最终得到的数据表达式为:
P ( Y = 1 ∣ x ) = exp ⁡ ( w ^ ⋅ x + b ) 1 + exp ⁡ ( w ^ ⋅ x + b ) P(Y=1|x)=\frac{\exp(\hat w\cdot{x}+b)}{1+\exp(\hat w\cdot{x}+b)} P(Y=1x)=1+exp(w^x+b)exp(w^x+b)

P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ^ ⋅ x + b ) P(Y=0|x)=\frac{1}{1+\exp(\hat w\cdot{x}+b)} P(Y=0x)=1+exp(w^x+b)1

2.5 多项逻辑斯蒂回归

我们对上面二分类描述了逻辑斯蒂回归的一般形式,这样我们可以推广为多分类问题中的逻辑斯蒂回归方法,它用于多分类目标函数。
设输入的数据集为 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . , ( x N , y N ) ∣ x k ∈ R n , y k ∈ { 1 , 2 , . . . , M } } D=\{(x_{1},y_{1}),(x_{2},y_{2}),..,(x_{N},y_{N})|x_{k}\in{R^{n},y_{k}\in\{1,2,...,M\}}\} D={(x1,y1),(x2,y2),..,(xN,yN)xkRn,yk{1,2,...,M}},所以多项逻辑斯蒂回归模型为:
P ( Y = m ∣ x ) = e x p ( w m ⋅ x + b m ) 1 + ∑ j = 1 M − 1 e x p ( w j ⋅ x + b j ) P(Y=m|x)=\frac{exp(w_{m}\cdot{x}+b_{m})}{1+\sum\limits_{j=1}^{M-1}exp(w_{j}\cdot{x}+b_{j})} P(Y=mx)=1+j=1M1exp(wjx+bj)exp(wmx+bm)

P ( Y = M ∣ x ) = 1 1 + ∑ j = 1 M − 1 e x p ( w j ⋅ x + b j ) P(Y=M|x)=\frac{1}{1+\sum\limits_{j=1}^{M-1}exp(w_{j}\cdot{x}+b_{j})} P(Y=Mx)=1+j=1M1exp(wjx+bj)1

同样函数的参数可以使用最大似然估计参数的值。我们这里介绍另外一种多分类逻辑回归的扩展,即使用线性预测器和额外的归一化因子并对某个结果概率的对数进行建模。设
ln ⁡ ( P { y = 1 ∣ x k } ) = w 1 ⋅ x k + b 1 − ln ⁡ Z \ln(P\{y=1|x_{k}\})=w_{1}\cdot{x_{k}}+b_{1}-\ln Z ln(P{y=1xk})=w1xk+b1lnZ

ln ⁡ ( P { y = 2 ∣ x k } ) = w 2 ⋅ x k + b 2 − ln ⁡ Z \ln(P\{y=2|x_{k}\})=w_{2}\cdot{x_{k}}+b_{2}-\ln Z ln(P{y=2xk})=w2xk+b2lnZ

. . . ... ...

ln ⁡ ( P { y = M ∣ x k } ) = w M ⋅ x k + b M − ln ⁡ Z \ln(P\{y=M|x_{k}\})=w_{M}\cdot{x_{k}}+b_{M}-\ln Z ln(P{y=Mxk})=wMxk+bMlnZ

这里的 ln ⁡ Z \ln Z lnZ是归一化项,使得所有的概率形成一个概率分布,从而使得这些概率之和等于1:
∑ j = 1 M P { y = j ∣ x k } = 1 \sum\limits_{j=1}^{M}P\{y=j|x_{k}\}=1 j=1MP{y=jxk}=1

所以对于上面的 M M M个式子,可以得到
P { y = j ∣ x k } = 1 Z e w j x k + b j P\{y=j|x_{k}\}=\frac{1}{Z}e^{w_{j}x_{k}+b_{j}} P{y=jxk}=Z1ewjxk+bj

所以得到
1 = ∑ j = 1 M P { y = j ∣ x k } = 1 Z ∑ j = 1 M e w j x k + b j 1=\sum\limits_{j=1}^{M}P\{y=j|x_{k}\}=\frac{1}{Z}\sum\limits_{j=1}^{M}e^{w_{j}x_{k}+b_{j}} 1=j=1MP{y=jxk}=Z1j=1Mewjxk+bj

所以求出 Z = ∑ j = 1 M e w j x k + b j Z=\sum\limits_{j=1}^{M}e^{w_{j}x_{k}+b_{j}} Z=j=1Mewjxk+bj

所以最后得到这样的一个表达式:
P { y = m ∣ x k } = e w m x k + b m ∑ j = 1 M e w j x k + b j P\{y=m|x_{k}\}=\frac{e^{w_{m}x_{k}+b_{m}}}{\sum\limits_{j=1}^{M}e^{w_{j}x_{k}+b_{j}}} P{y=mxk}=j=1Mewjxk+bjewmxk+bm

综合上述表达式,统一成函数,这个函数被称作softmax函数:
softmax ( x k ) \text{softmax}(x_{k}) softmax(xk)

这就是多分类中的分类函数。

3. 最大熵模型

4. 参数求解方法

5. 实现过程

小结

参考文献

[1] 统计学习方法,李航
[2] MATLAB在数学建模中的应用,卓金武

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值