机器学习|逻辑斯蒂回归
逻辑斯蒂回归
1 知识预警
1.1 交叉熵与对数似然
1.1.1 熵
设 X X X是一个取有限个值的离散随机变量,其概率分布(分布律、分布列)为: P ( X = x i ) = p i , i = 1 , 2 , ⋯ , n \begin{align}P(X=x_i)=p_i,\quad i=1,2,\cdots,n \end{align} P(X=xi)=pi,i=1,2,⋯,n
一个随机事件发生的概率越高,其信息量越低,故信息量定义为: I ( X ) = − ∑ i = 1 n log p i \begin{align}I(X)=-\sum_{i=1}^{n}{\log p_i}\end{align} I(X)=−i=1∑nlogpi
在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量:则随机变量 X X X熵的定义为: H ( X ) = − ∑ i = 1 n p i log p i \begin{align}H(X) &=- \sum_{i=1}^n p_i \log p_i \end{align} H(X)=−i=1∑npilogpi
上式中,若 p i = 0 p_i=0 pi=0,则定义 0 log 0 = 0 0 \log 0=0 0log0=0。由定义可知,熵只依赖于 X X X的分布,而与 X X X的取值无关,所以也可以将 X X X的熵记作 H ( p ) H(p) H(p): H ( p ) = − ∑ i = 1 n p i log p i \begin{align}H(p)=- \sum_{i=1}^n p_i \log p_i \end{align} H(p)=−i=1∑npilogpi
1.1.2 交叉熵
现在有关于样本集的两个概率分布 p(x) 和 q(x),其中 p(x) 为真实分布, q(x)非真实分布。如果用真实分布 p(x) 来衡量识别一个样本所需要编码长度的期望(平均编码长度)为式(3),如果使用非真实分布 q(x) 来表示来自真实分布 p(x) 的平均编码长度,则是: H ( p , q ) = − ∑ p i log q i \begin{align} H(p,q)=-\sum_{} p_i \log q_i\end{align} H(p,q)=−∑pilogqi
如考虑一个随机变量 X X X,真实分布 p ( x ) = ( 1 2 , 1 4 , 1 8 , 1 8 ) p(x)=( \frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \frac{1}{8}) p(x)=(21,41,81,81),非真实分布 q ( x ) = ( 1 4 , 1 4 , 1 4 , 1 4 ) q(x)=( \frac{1}{4}, \frac{1}{4}, \frac{1}{4}, \frac{1}{4}) q(x)=(41,41,41,41),则 H ( p , q ) = − ( 1 2 log 2 1 4 + 1 4 log 2 1 4 + 1 8 log 2 1 4 + 1 8 log 2 1 4 + ) = 2 bits H(p,q)=-(\frac{1}{2} \log_2 \frac{1}{4}+\frac{1}{4} \log_2 \frac{1}{4}+\frac{1}{8} \log_2 \frac{1}{4}+\frac{1}{8} \log_2 \frac{1}{4}+)=2 \text{bits} H(p,q)=−(21log241+41log241+81log241+81log241+)=2bits
1.1.3 KL散度
用来衡量两个分布之间的差异。使用概率分布q来近似p时所造成的信息损失量。
KL
(
p
,
q
)
=
H
(
p
,
q
)
−
H
(
p
)
=
∑
p
i
log
p
i
q
i
\begin{align} \text{KL}(p,q)&=H(p,q)-H(p)\\ &=\sum_{}p_i \log \frac{p_i}{q_i}\end{align}
KL(p,q)=H(p,q)−H(p)=∑pilogqipi
应用到机器学习中,若真实分布为
p
r
(
y
∣
x
)
p_r(y|\boldsymbol{x})
pr(y∣x),预测分布为
p
θ
(
y
∣
x
)
p_{\theta}(y|\boldsymbol{x})
pθ(y∣x),通过KL散度衡量两个分布之间的额差异,即损失函数为最小化预测分布与真实分布之间的差异:
min
KL
(
p
r
(
y
∣
x
)
,
p
θ
(
y
∣
x
)
)
=
∑
p
r
(
y
∣
x
)
log
p
r
(
y
∣
x
)
p
θ
(
y
∣
x
)
∝
−
∑
p
r
(
y
∣
x
)
log
p
θ
(
y
∣
x
)
\begin{align} \min \text{KL}(p_r(y|\boldsymbol{x}),p_{\theta}(y|\boldsymbol{x})) &=\sum_{}p_r(y|\boldsymbol{x}) \log \frac{p_r(y|\boldsymbol{x})}{p_{\theta}(y|\boldsymbol{x})}\\& \propto -\sum{}p_r(y|\boldsymbol{x}) \log p_{\theta}(y|\boldsymbol{x})\end{align}
minKL(pr(y∣x),pθ(y∣x))=∑pr(y∣x)logpθ(y∣x)pr(y∣x)∝−∑pr(y∣x)logpθ(y∣x)
1.3 Sigmoid函数
Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在深度学习中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的激活函数,将变量映射到 [ 0 , 1 ] [0,1] [0,1]之间。
σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+e−x1
Sigmoid函数的导数可以用其自身表示:
σ ′ ( x ) = σ ( x ) ( 1 − σ ( x ) ) \sigma '(x)=\sigma(x)(1-\sigma(x)) σ′(x)=σ(x)(1−σ(x))
两种坐标尺度下的Sigmoid函数图如下,上图的横坐标为-5到5,这时的曲线变化较为平滑;下图横坐标的尺度足够大,可以看到,在x = 0点处Sigmoid函数看起来很像阶跃函数

为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1类,小于0.5即被归入0类。所以,Logistic回归也可以被看成是一种概率估计。
梯度上升算法
梯度上升法基于的思想是:要找到某函数的
最大值,最好的方法是沿着该函数的梯度方向探寻。如果梯度记为∇,则函数f(x,y)的梯度由
下式表示:
2 逻辑斯蒂回归模型(以二分类为例)
首先推导逻辑斯蒂回归模型,然后最小化损失函数,通过梯度下降算法学习最优参数。文章将回答以下问题:
- 为什么要使用sigmoid函数?
- 逻辑斯蒂分布、二项逻辑斯蒂回归模型、对数几率
- 交叉熵损失函数就是对数似然损失函数
- 为什么选择交叉熵损失函数,而不是平方损失函数?
- 逻辑斯谛回归只能用于二分类吗?
- 逻辑斯谛回归中,在线性决策边界
w
⊤
x
+
b
w^\top x+b
w⊤x+b的符号(>0或<0)即可。为什么还要加上Sigmoid激活函数
- 根本的原因:我们不仅仅想知道一个样本是“A类”还是“B类”,我们还想知道它属于A类的可能性有多大。
逻辑斯谛回归是经典的分类方法,它属于对数线性模型,原理是根据现有的数据对分类边界线建立回归公式,以此进行分类。具体来讲,对于二分类问题,只需要构造一个线性判别函数 f ( x ) = w T x + b f(x)=\pmb{w}^\mathrm{T} \pmb{x}+b f(x)=wTx+b。特征空间 R D \mathbb{R}^D RD中所有满足 f ( x ) = 0 f(\pmb x)=0 f(x)=0的点组成一个分割超平面(Hyperplane),称为决策边界(Decision Boundary),决策边界将特征空间一分为二,划分为两个区域,每个区域对应一个类别。一个二分类问题的线性决策边界如下图所示,其中样本特征向量 x = [ x 1 , x 2 ] \pmb x =[x1, x2] x=[x1,x2],权重向量 w = [ w 1 , w 2 ] \pmb w = [w1, w2] w=[w1,w2]。
sigmoid ( z ) = g ( z ) = 1 1 + e − z \begin{align}\text{sigmoid}(z)=g(z)=\frac{1}{1+e^{-z}}\end{align} sigmoid(z)=g(z)=1+e−z1
在线性回归模型的基础上,使用Sigmoid函数,将线性模型的预测值
(
−
∞
,
+
∞
)
(-\infty,+\infty)
(−∞,+∞)压缩到
(
0
,
1
)
(0,1)
(0,1)之间,使其拥有概率意义,实现值到概率转换1
。这样,就可以显示一个样本被分为一个类别的概率是多少。这时,式(10)已经是一个概率了,给定一个样本输入
x
\pmb x
x,输出为正类的条件概率分布表示为式(11),当然也可以是表示为负类,只是表示方式不一样而已。
P
(
Y
=
0
∣
x
)
=
1
−
P
(
Y
=
1
∣
x
)
P(Y=0|\pmb x)=1-P(Y=1|\pmb x)
P(Y=0∣x)=1−P(Y=1∣x)得到式(12)。公式(11)(12)是二项逻辑斯蒂回归模型的条件概率分布。
P
(
Y
=
1
∣
x
)
=
sigmoid
(
f
(
x
)
)
=
1
1
+
e
−
w
T
x
+
b
=
e
w
T
x
+
b
1
+
e
w
T
x
+
b
P
(
Y
=
0
∣
x
)
=
1
1
+
e
w
T
x
+
b
\begin{align}P(Y=1|\pmb x) &=\text{sigmoid}(f(\pmb x))&=\frac{1}{1+e^{-\pmb{w}^\mathrm{T} \pmb{x}+b}}=\frac{ e^{\pmb{w}^\mathrm{T} \pmb x+b}}{ 1+e^{\pmb{w}^\mathrm{T} \pmb x+b} } \\P(Y=0|\pmb x) &= \frac{1}{1+e^{\pmb{w}^\mathrm{T} \pmb x+b} }\end{align}
P(Y=1∣x)P(Y=0∣x)=sigmoid(f(x))=1+ewTx+b1=1+e−wTx+b1=1+ewTx+bewTx+b
这里,
x
∈
R
d
\pmb{x} \in \mathbb{R}^d
x∈Rd是输入,
Y
=
{
0
,
1
}
Y=\{0,1\}
Y={0,1}是输出,
w
∈
R
d
\pmb{w} \in \mathbb{R}^d
w∈Rd和
b
∈
R
b \in \mathbb{R}
b∈R是参数,
w
w
w称为权重,
b
b
b称为偏置,
w
x
w \pmb x
wx为内积。对于给定的输入实例
x
x
x,按照式(11)(12)可以计算
P
(
Y
=
1
∣
x
)
P(Y=1|\pmb x)
P(Y=1∣x)和
P
(
Y
=
0
∣
x
)
P(Y=0|\pmb x)
P(Y=0∣x),逻辑斯蒂回归比较两个条件概率的大小,将实例
x
\pmb x
x分类到概率值较大的那一类。
比如我们认为A类为正类,B类为负类,那么当某个样本分为A类的概率>50%,我们可认为其为A类,如果<50%,我们可认为其为B类,如下式,式中
y
^
\hat{y}
y^为样本的预测值,
f
(
x
)
f(x)
f(x)为分割超平面,当某个样本在分割超平面的这一侧(法向量方向,
f
(
x
)
>
0
f(x)>0
f(x)>0),可以认为该样本分为这一类的概率较大(
sigmoid
(
f
(
x
)
)
>
0.5
\text{sigmoid}(f(x))>0.5
sigmoid(f(x))>0.5):
y
^
=
{
1
if
f
(
x
)
>
0
⇔
sigmoid
(
f
(
x
)
)
>
0.5
−
1
if
f
(
x
)
<
0
⇔
sigmoid
(
f
(
x
)
)
<
0.5
\begin{align} \hat{y} = \begin{cases} 1 & \text{if} \ f(\pmb x) > 0 \Leftrightarrow\text{sigmoid}(f(\pmb x))>0.5\\ -1 & \text{if} \ f(\pmb x) < 0 \Leftrightarrow\text{sigmoid}(f(\pmb x))<0.5\\ \end{cases}\end{align}
y^={1−1if f(x)>0⇔sigmoid(f(x))>0.5if f(x)<0⇔sigmoid(f(x))<0.5
给定
N
N
N个样本的训练集
D
=
{
x
(
i
)
,
y
(
i
)
}
i
=
1
N
\mathcal{D}=\{\pmb x^{(i)},y^{(i)}\}_{i=1}^N
D={x(i),y(i)}i=1N,其中
y
(
i
)
∈
{
+
1
,
−
1
}
y^{(i)} \in \{+1,-1\}
y(i)∈{+1,−1},线性模型试图学习参数
w
∗
\pmb w^*
w∗,使得对于每个样本
(
x
(
i
)
,
y
(
i
)
)
(\pmb x^{(i)},y^{(i)})
(x(i),y(i))尽量满足
f
w
∗
(
x
(
i
)
)
>
0
if
y
(
i
)
=
1
f
w
∗
(
x
(
i
)
)
<
0
if
y
(
i
)
=
−
1
\begin{align} f_{w^*}(x^{(i)}) >0 \quad \text{if} \quad y^{(i)}=1 \\ f_{w^*}(x^{(i)}) <0 \quad \text{if}\quad y^{(i)}=-1 \\ \end{align}
fw∗(x(i))>0ify(i)=1fw∗(x(i))<0ify(i)=−1
上面两个公式也可以合并,即参数𝒘∗ 尽量满足
y
(
i
)
f
w
∗
>
0
,
∀
i
∈
[
1
,
N
]
\begin{align} y^{(i)}f_{w^*}>0,\quad \forall i \in [1,N] \end{align}
y(i)fw∗>0,∀i∈[1,N]
3 模型训练
模型预测条件概率为:
P
w
(
Y
=
1
∣
x
(
i
)
)
=
y
(
i
)
P
w
(
Y
=
−
1
∣
x
(
i
)
)
=
1
−
y
(
i
)
\begin{align} P_w(Y=1|\pmb{x}^{(i)})&=y^{(i)} \\ P_w(Y=-1|\pmb{x}^{(i)})&=1-y^{(i)}\end{align}
Pw(Y=1∣x(i))Pw(Y=−1∣x(i))=y(i)=1−y(i)
对于一个样本
(
x
(
i
)
,
y
(
i
)
)
(\pmb{x}^{(i)},y^{(i)})
(x(i),y(i)),其真实条件概率为:
P
r
(
Y
=
1
∣
x
(
i
)
)
=
y
(
i
)
P
r
(
Y
=
−
1
∣
x
(
i
)
)
=
1
−
y
(
i
)
\begin{align} P_r(Y=1|\pmb{x}^{(i)})&=y^{(i)}\\P_r(Y=-1|\pmb{x}^{(i)})&=1-y^{(i)} \end{align}
Pr(Y=1∣x(i))Pr(Y=−1∣x(i))=y(i)=1−y(i)
3.1 损失函数
为了充分利用凸优化中一些高效、成熟的优化方法, 如共轭梯度、拟牛顿法等,很多机器学习方法都倾向于选择合适的模型和损失函数,以构造一个凸函数作为优化目标.但也有很多模型(比如神经网络)的优化目标是非凸的,只能退而求其次找到局部最优解。
在线性回归中采用平方损失函数,但在逻辑斯蒂回归中采用交叉熵损失函数2:,很多文献和资料提及交叉损失的同时还涉及对数损失,其实两者是一样的3。
3.1.1 平方损失函数
平方损失函数:
L
(
w
)
=
1
2
N
∑
i
=
1
N
(
y
(
i
)
−
y
^
(
i
)
)
)
2
\begin{align} \mathcal{L}(\boldsymbol w) = \frac{1}{2N} \sum_{i=1}^N ( y^{(i)}-\hat y^{(i)}) )^2 \end{align}
L(w)=2N1i=1∑N(y(i)−y^(i)))2
梯度为:
∂
L
(
w
)
∂
w
=
1
N
∑
i
=
1
N
(
y
(
i
)
−
y
^
(
i
)
)
x
\begin{align} \frac{\partial \mathcal{L(\boldsymbol w)}}{\partial \boldsymbol w} =\frac{1}{N} \sum_{i=1}^N(y^{(i)}-\hat y^{(i)})\boldsymbol x \end{align}
∂w∂L(w)=N1i=1∑N(y(i)−y^(i))x其中,
y
^
(
i
)
\hat{y}^{(i)}
y^(i)是关于
w
\boldsymbol w
w的sigmoid函数,是一个非凸函数,存在许多局部极小值点,采用梯度下降算法求解时,不适合做逻辑斯蒂回归的损失函数。
3.1.1 交叉熵损失函数
由交叉熵公式和KL散度推导出损失函数:
H
(
p
r
,
p
w
)
=
−
(
y
(
i
)
log
y
^
(
i
)
+
(
1
−
y
(
i
)
)
log
(
1
−
y
^
(
i
)
)
)
\begin{align} H(p_r,p_w)=-\left( y^{(i)} \log \hat{y}^{(i)}+\left(1-y^{(i)}\right) \log(1-\hat{y}^{(i)}) \right) \end{align}
H(pr,pw)=−(y(i)logy^(i)+(1−y(i))log(1−y^(i)))
交叉熵损失函数:
L
(
w
)
=
−
1
N
∑
i
=
1
N
(
y
(
i
)
log
y
^
(
i
)
+
(
1
−
y
(
i
)
)
log
(
1
−
y
^
(
i
)
)
)
\begin{align} \mathcal{L}(\pmb{w})=-\frac{1}{N} \sum_{i=1}^N\left( y^{(i)} \log \hat{y}^{(i)}+\left(1-y^{(i)}\right) \log(1-\hat{y}^{(i)}) \right) \end{align}
L(w)=−N1i=1∑N(y(i)logy^(i)+(1−y(i))log(1−y^(i)))
3.1.2 对数似然函数
交叉熵损失函数就是对数似然函数
首先写出最大似然函数:
L
(
w
)
=
∏
i
=
1
N
[
P
(
X
=
x
(
i
)
)
]
y
(
i
)
[
1
−
P
(
X
−
x
(
i
)
)
]
(
1
−
y
(
i
)
)
=
∏
i
=
1
N
y
^
y
(
i
)
[
1
−
y
^
]
(
1
−
y
(
i
)
)
\begin{align} L(\boldsymbol w) &= \prod_{i=1}^{N} [P(X=\boldsymbol x^{(i)})] ^{y{(i)}} [1-P(X-\boldsymbol x ^{(i)})]^{(1-y^{(i)})} \\ &=\prod_{i=1}^{N} \hat y ^{y{(i)}} [1-\hat y]^{(1-y^{(i)})}\end{align}
L(w)=i=1∏N[P(X=x(i))]y(i)[1−P(X−x(i))](1−y(i))=i=1∏Ny^y(i)[1−y^](1−y(i))
为了计算方便,我们对似然函数取对数,得到对数似然函数:
log
L
(
x
)
=
∑
i
=
1
N
y
(
i
)
log
y
^
(
i
)
+
(
1
−
y
(
i
)
)
log
(
1
−
y
^
(
i
)
)
\begin{align} \log L(\boldsymbol x)=\sum_{i=1}^N y^{(i)} \log \hat y^{(i)} +(1-y^{(i)})\log (1- \hat y^{(i)}) \end{align}
logL(x)=i=1∑Ny(i)logy^(i)+(1−y(i))log(1−y^(i))
3.2 梯度
梯度为:
∂ L ( w ) ∂ w = − 1 N ∑ i = 1 N ( y ( i ) y ^ ( i ) ( 1 − y ^ ( i ) ) y ^ ( i ) x ( i ) − ( 1 − y ( i ) ) y ^ ( i ) ( 1 − y ^ ( i ) ) 1 − y ^ ( i ) x ( i ) ) = − 1 N ∑ i = 1 N ( y ( i ) ( 1 − y ^ ( i ) ) x ( i ) − ( 1 − y ( i ) ) y ^ ( i ) x ( i ) ) = − 1 N ∑ i = 1 N x ( i ) ( y ( i ) − y ^ ( i ) ) . \begin{aligned} \frac{\partial \mathcal{L}(\boldsymbol{w})}{\partial \boldsymbol{w}} & =-\frac{1}{N} \sum_{i=1}^{N}\left(y^{(i)} \frac{\hat{y}^{(i)}\left(1-\hat{y}^{(i)}\right)}{\hat{y}^{(i)}} \boldsymbol{x}^{(i)}-\left(1-y^{(i)}\right) \frac{\hat{y}^{(i)}\left(1-\hat{y}^{(i)}\right)}{1-\hat{y}^{(i)}} \boldsymbol{x}^{(i)}\right) \\ & =-\frac{1}{N} \sum_{i=1}^{N}\left(y^{(i)}\left(1-\hat{y}^{(i)}\right) \boldsymbol{x}^{(i)}-\left(1-y^{(i)}\right) \hat{y}^{(i)} \boldsymbol{x}^{(i)}\right) \\ & =-\frac{1}{N} \sum_{i=1}^{N} \boldsymbol{x}^{(i)}\left(y^{(i)}-\hat{y}^{(i)}\right) . \end{aligned} ∂w∂L(w)=−N1i=1∑N(y(i)y^(i)y^(i)(1−y^(i))x(i)−(1−y(i))1−y^(i)y^(i)(1−y^(i))x(i))=−N1i=1∑N(y(i)(1−y^(i))x(i)−(1−y(i))y^(i)x(i))=−N1i=1∑Nx(i)(y(i)−y^(i)).
采用梯度下降法,Logistic回归的训练过程为:初始化
w
0
←
0
\boldsymbol{w_0} ← 0
w0←0,然后通过下式来迭代更新参数:
w
t
+
1
←
w
t
+
α
1
N
∑
i
=
1
N
x
(
i
)
(
y
(
i
)
−
y
^
(
i
)
)
\begin{aligned} \boldsymbol{w}_{t+1} \leftarrow \boldsymbol{w}_{t}+\alpha \frac{1}{N} \sum_{i=1}^{N} \boldsymbol{x}^{(i)} \left(y^{(i)}-\hat{y}^{(i)} \right) \end{aligned}
wt+1←wt+αN1i=1∑Nx(i)(y(i)−y^(i))
2.3 优化方法
有了梯度后,就可以使用梯度下降算法学习参数 w \boldsymbol w w了。
4 多分类逻辑斯谛回归(Multinomial Logistic Regression)
二分类逻辑斯谛回归 (Binary Logistic Regression),这是我们最熟悉的形式。它通过一个S型的逻辑斯谛函数(Sigmoid Function)将线性组合的输出映射到(0, 1)之间,将其解释为属于正类的概率。
- 模型输出:一个概率值 P ( Y = 1 ∣ X ) P(Y=1 | X) P(Y=1∣X)
- 核心函数:Sigmoid函数 σ ( z ) = 1 / ( 1 + e ( − z ) ) σ(z) = 1 / (1 + e^(-z)) σ(z)=1/(1+e(−z))
- 决策:通常以0.5为阈值,概率大于0.5的样本被预测为正类,反之则为负类。
当类别数(K)大于2时,逻辑斯谛回归可以通过扩展来处理多分类问题。主要有两种策略:
策略一:One-vs-Rest (OvR) 或 One-vs-All (OvA)
这是一种基于二分类的扩展策略,核心思想是将多分类问题分解为多个二分类问题。这也是很多机器学习库(如scikit-learn)的默认实现方式。
- 如何工作:
- 假设有K个类别(例如,猫、狗、兔子)。
- 训练K个独立的二分类器。
- 第i个分类器被训练来回答“这个样本是类别i,还是其他所有类别?”(即,将类别i作为正类,其余所有类别作为负类)。
- 预测:
- 将一个新样本输入这K个分类器,会得到K个概率值(例如,P(猫|X)=0.85,P(狗|X)=0.1,P(兔子|X)=0.2)。
- 选择概率最高的那个类别作为最终预测结果(在这个例子中,预测为“猫”)。
- 注意,这里三者之和不=1。每个概率都来自于一个独立的二分类判断,它们的参考系和归一化标准都是不同的,因此把它们加起来没有任何数学意义,它们的和也不必然为1
策略二:Multinomial Loss (Softmax Regression)
这是一种更自然、更直接的多分类扩展,是逻辑斯谛回归在多分类问题上的“正统”形式。
- 如何工作:
- 它将Sigmoid函数替换为Softmax函数。
- Softmax函数接收一个包含K个值的向量(每个值对应一个类别的线性输出得分),并将其转换为一个概率分布,使得所有K个输出的概率之和为1。
- 模型输出:一个包含K个概率值的向量,每个值代表样本属于对应类别的概率。例如: [ P ( 猫 ∣ X ) = 0.7 , P ( 狗 ∣ X ) = 0.2 , P ( 兔子 ∣ X ) = 0.1 ] [P(猫|X)=0.7, P(狗|X)=0.2, P(兔子|X)=0.1] [P(猫∣X)=0.7,P(狗∣X)=0.2,P(兔子∣X)=0.1]
- 核心函数:Softmax函数
P ( Y = i ∣ X ) = e z i / ( Σ j = 1 K e z j ) P(Y=i | X) = e^{z_i} / (Σ_{j=1}^{K} e^{z_j}) P(Y=i∣X)=ezi/(Σj=1Kezj),其中 z i z_i zi 是模型对第i个类别的得分。 - 决策:直接选择概率最高的类别作为预测结果。
总结与对比
| 特性 | 二分类逻辑斯谛回归 | 多分类逻辑斯谛回归 (OvR) | 多分类逻辑斯谛回归 (Softmax) |
|---|---|---|---|
| 适用问题 | 只有两个类别 | 两个及以上类别 | 两个及以上类别 |
| 核心函数 | Sigmoid | Sigmoid (多个) | Softmax (单个) |
| 输出 | 一个概率值 (属于正类的概率) | K个独立的概率值 | 一个概率分布 (K个概率值,总和为1) |
| 训练方式 | 训练一个模型 | 训练K个独立的二分类模型 | 训练一个单一的、输出K个值的模型 |
| 特点 | 简单直观 | 易于理解实现,但类别较多时效率低,且可能存在“不确定”区域 | 更高效、理论更严谨,是处理多分类的首选方法 |
总结:逻辑斯谛回归绝对不仅仅局限于二分类。通过 One-vs-Rest (OvR) 或更优雅的 Softmax Regression 方法,它可以有效地解决多类别分类问题。
在实际应用中,如scikit-learn库中,LogisticRegression类默认会自动使用OvR策略来处理多分类问题(也可以通过设置multi_class='multinomial'来使用Softmax回归)。
对数线性模型
是的,逻辑斯谛回归(Logistic Regression)被认为是一种对数线性模型(Log-Linear Model)。
这个说法非常准确,它揭示了逻辑斯谛回归的本质。我们可以从两个角度来理解为什么它是“对数线性”的。
odds(几率)的对数是线性的
这是最经典、最直接的解释。逻辑斯谛回归的核心并不直接在于预测概率 P,而在于它所建模的 “几率”(Odds)。
-
定义几率 (Odds):指事件发生概率与不发生概率的比值。
Odds = P / (1 - P)- 如果
P = 0.9,则Odds = 0.9 / 0.1 = 9(发生概率是不发生概率的9倍) - 如果
P = 0.5,则Odds = 1(发生和不发生的概率相等) - 如果
P = 0.1,则Odds = 0.1 / 0.9 ≈ 0.111
- 如果
-
取对数 (Log-Odds):对几率取自然对数,得到 “对数几率” 或 “Logit”。
Logit(P) = ln(Odds) = ln( P / (1-P) ) -
逻辑斯谛回归的假设:模型假设这个对数几率 与特征向量
X是线性关系。
l n P ( Y = 1 ∣ X ) ( 1 − P ( Y = 1 ∣ X ) ) = w ⊤ ∗ X + b ln \frac{P(Y=1|X)}{ (1 - P(Y=1|X))} = w^\top * X + b ln(1−P(Y=1∣X))P(Y=1∣X)=w⊤∗X+b
这就是“对数线性”名称的由来:模型将输出(概率)的对数变换形式(Logit) 与输入特征 X 之间定义为一种线性关系。建立了一个线性预测器 (w^T*X + b) 与概率的某种变换 (ln(Odds)) 之间的等式关系。
更多推荐



所有评论(0)