逻辑回归

本文详细介绍了逻辑回归,一种用于二分类问题的分类算法。首先,解释了逻辑回归如何通过线性模型结合sigmoid函数将连续值转化为离散概率。接着,讨论了逻辑回归的损失函数,该函数衡量预测概率与实际类别之间的差距。最后,探讨了使用梯度下降法优化损失函数以求解模型参数的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

逻辑回归

逻辑回归(Logistic Regression),虽然名字中有“回归”两个字,但其实是一种分类算法,可以用来处理二分类或多分类问题。逻辑回归又被称为对数几率回归,它是一种广义线性模型。已知线性回归 z=ωTx z = ω T x ,其中 ω,xRn ω , x ∈ R n ,考虑单调可微函数 g(.) g ( . ) ,我们称形如 y=g(z)=g(ωx) y = g ( z ) = g ( ω x ) 的模型为“广义线性模型”。

1逻辑回归模型

线性回归模型的预测结果为连续值,当我们需要预测的结果是0-1的离散值时,我们希望引入函数 g(.) g ( . ) ,使得 y=g(z) y = g ( z ) 能将连续值转换为离散值并直接输出0/1。最理想的一个函数是阶跃函数 y=ϕ(z) y = ϕ ( z ) ,使得:
这里写图片描述
但这个函数不是一个连续函数,因此不能作为广义线性模型中的 g(.) g ( . ) 。我们找到一种sigmoid函数:

g(z)=11+ez g ( z ) = 1 1 + e − z
作为阶跃函数的替代,这个函数常被称为对数几率函数(logistic function)。它能将 z z 值转换为接近0和1的值,当z>0时,输出值趋于1;当 z<0 z < 0 时,输出值 g(z) g ( z ) 趋于0;并且它的输出值在 z=0 z = 0 时变化很快,其形状为:
对数几率回归函数
z=ωTx z = ω T x ,并代入 g(z) g ( z ) 中,就得到逻辑回归模型:
g(x)=11+eωTx g ( x ) = 1 1 + e − ω T x

该模型的输入 x x 表示一个样本在一组特征向量上的取值,模型输出g(x)可以理解为预测输入样本取正类的概率。
这个sigmoid函数还有一个非常好的性质:
g(x)=g(x)(1g(x)) g ′ ( x ) = g ( x ) ( 1 − g ( x ) )

我们很快就会用到这个性质。

2 逻辑回归模型的损失函数

我们已经知道逻辑回归的输出 g(x) g ( x ) 可以理解为预测输入样本取正类的概率,我们可以做如下定义:

P(y=1|x,ω)=g(x) P ( y = 1 | x , ω ) = g ( x )

P(y=0|x,ω)=1g(x) P ( y = 0 | x , ω ) = 1 − g ( x )

分别表示模型预测输出样本 x x 为正类和负类的概率。将两个式子合并,可以写作:
P(y|x,ω)=g(x)y(1g(x))1yy=01

我们可以用极大似然估计的方法去推测我们的模型系数 ω ω ,并用极大似然函数构造损失函数 J(ω) J ( ω ) 。取极大似然函数:
L(ω)=i=1mg(x(i))y(i)(1g(x(i)))1y(i) L ( ω ) = ∏ i = 1 m g ( x ( i ) ) y ( i ) ( 1 − g ( x ( i ) ) ) 1 − y ( i )

我们可以对极大似然函数取对数,就变成:
ln(L(ω))=i=1m[y(i)ln(g(x(i)))+(1y(i))ln(1g(x(i)))] l n ( L ( ω ) ) = ∑ i = 1 m [ y ( i ) l n ( g ( x ( i ) ) ) + ( 1 − y ( i ) ) l n ( 1 − g ( x ( i ) ) ) ]

这个函数值越大,预测准确率越高。也就是我们需要求的是使这个函数值最大时所对应的 ω ω 。再加个负号就是我们的误差函数,即:
J(ω)=i=1m[y(i)ln(g(x(i)))+(1y(i))ln(1g(x(i)))] J ( ω ) = − ∑ i = 1 m [ y ( i ) l n ( g ( x ( i ) ) ) + ( 1 − y ( i ) ) l n ( 1 − g ( x ( i ) ) ) ]

用矩阵表示,可以表示为:
J(ω)=i=1m[y(i)ln(g(x(i)))+(1y(i))ln(1g(x(i)))] J ( ω ) = − ∑ i = 1 m [ y ( i ) l n ( g ( x ( i ) ) ) + ( 1 − y ( i ) ) l n ( 1 − g ( x ( i ) ) ) ]

3 逻辑回归模型的求解

上一节提到的逻辑回归损失函数 J(ω) J ( ω ) 是一个关于 ω ω 的凸函数,求解凸函数的极小值的方法有很多,如梯度下降法、牛顿法等。以下展示用梯度下降法进行求解的推导。
J(ω) J ( ω ) ωj ω j 求导,有:

J(ω)ωj=i=1m[y(i)g(x(i))1y(i)1g(x(i))]g(x(i))(1g(x(i)))x(i)j ∂ J ( ω ) ∂ ω j = − ∑ i = 1 m [ y ( i ) g ( x ( i ) ) − 1 − y ( i ) 1 − g ( x ( i ) ) ] g ( x ( i ) ) ( 1 − g ( x ( i ) ) ) x j ( i )

J(ω)ωj=i=1m[y(i)(1g(x(i)))(1y(i))g(x(i))]x(i)j ∂ J ( ω ) ∂ ω j = − ∑ i = 1 m [ y ( i ) ( 1 − g ( x ( i ) ) ) − ( 1 − y ( i ) ) g ( x ( i ) ) ] x j ( i )

J(ω)ωj=i=1m[y(i)g(x(i))]x(i)j ∂ J ( ω ) ∂ ω j = − ∑ i = 1 m [ y ( i ) − g ( x ( i ) ) ] x j ( i )

所以, ω ω 的更新过程可以写成: ωj:=ωjαmi=1[g(x(i)y(i))]x(i)j ω j := ω j − α ∑ i = 1 m [ g ( x ( i ) − y ( i ) ) ] x j ( i ) ,其中 α α 表示每次更新的步长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值