回归分析(三)二项逻辑斯蒂回归
学了一段时间突然又遇到逻辑斯蒂回归,结果发现已经忘完了,所以今天重新梳理一下。
(1)逻辑斯蒂分布
先看一下逻辑斯蒂分布函数 F ( x ) F(x) F(x),其概率密度函数 f ( x ) f(x) f(x)公式如下:
F ( x ) = P ( X ≤ x ) = 1 1 + e − ( x − μ ) γ f ( x ) = F ′ ( x ) = e − ( x − μ ) γ γ ( 1 + e − ( x − μ ) γ ) 2 (其中 μ 为位置参数, γ 为形状参数) F(x)=P(X\leq x)=\frac{1}{1+e^{\frac{-(x-\mu)}{\gamma}}}\\ f(x)=F'(x)=\frac{e^{\frac{-(x-\mu)}{\gamma}}}{\gamma(1+e^{\frac{-(x-\mu)}{\gamma}})^2}\\ (其中\mu为位置参数,\gamma为形状参数) F(x)=P(X≤x)=1+eγ−(x−μ)1f(x)=F′(x)=γ(1+eγ−(x−μ))2eγ−(x−μ)(其中μ为位置参数,γ为形状参数)
当 μ = 0 , γ = 1 \mu=0,\gamma=1 μ=0,γ=1时,即 s i g m o i d sigmoid sigmoid函数如下:

s i g m o i d 函数: F ( x ) = 1 1 + e − x sigmoid函数:F(x)=\frac{1}{1+e^{-x}} sigmoid函数:F(x)=1+e−x1
(2)逻辑斯蒂回归数学推导
逻辑斯蒂回归是在回归模型中引入 s i g m o i d sigmoid sigmoid函数的一种非线性回归模型,如下:
y = 1 1 + e − z = 1 1 + e − ( w . x + b ) 其中 y ∈ ( 0 , 1 ) , z = w . x + b \begin{aligned} &y=\frac{1}{1+e^{-z}}=\frac{1}{1+e^{-(w.x+b)}}\\ &其中y\in(0,1),~z=w.x+b \end{aligned} y=1+e−z1=1+e−(w.x+b)1其中y∈(0,1), z=w.x+b
-
s i g m o i d sigmoid sigmoid函数的以下几条优秀性质,将赋予它以概率意义:
-
单增有界,且取值范围为 ( 0 , 1 ) (0,1) (0,1), F ( 0 ) = 0.5 F(0)=0.5 F(0)=0.5。
-
对于输入 z z z范围无限制,且 z → ∞ , y = 1 ; z → − ∞ , y = 0 z\rightarrow\infin,y=1;~z\rightarrow-\infin,y=0 z→∞,y=1; z→−∞,y=0。
-
因此,逻辑斯蒂回归虽可用于数据和输出之间复杂关系回归拟合,但由于其良好的概率特性,使其更多情况作为二分类模型的基础。
作二分类的逻辑斯蒂回归模型,即二项逻辑斯蒂回归,通过极大化似然函数的方法,运用梯度下降最优化模型参数,使得正确分类概率最大化,从而实现分类作用。
这里我们引出逻辑斯蒂回归模型,它由条件概率分布表示,即输入 x x x条件下,输出的概率分布:
P ( Y = 1 ∣ x ) = e ( w x + b ) 1 + e ( w x + b ) P ( Y = 0 ∣ x ) = 1 1 + e ( w x + b ) ( x ∈ R n 为输入, Y ∈ { 0 , 1 } 为输出, w ∈ R n 和 b ∈ R 为待优化参数, w 权值, b 偏置) P(Y=1|x)=\frac{e^{(wx+b)}}{1+{e^{(wx+b)}}}\\ P(Y=0|x)=\frac{1}{1+e^{(wx+b)}}\\ (x\in R^n为输入,Y\in \{0,1\}为输出,w\in R^n和b\in R为待优化参数,w权值,b偏置) P(Y=1∣x)=1+e(wx+b)e(wx+b)P(Y=0∣x)=1+e(wx+b)1(x∈Rn为输入,Y∈{0,1}为输出,w∈Rn和b∈R为待优化参数,w权值,b偏置)
即对于给定的输入实例 x x x,求解 P ( Y = 1 ∣ x ) P(Y=1|x) P(Y=1∣x)和 P ( Y = 0 ∣ x ) P(Y=0|x) P(Y=0∣x),进行比较,将实例 x x x分类到概率较大的一类即可。
插播 t i p s : 逻辑斯蒂回归也被称作 − − 对数几率回归 几率 o d d s = p 1 − p / 对数几率 log ( o d d s ) = l o g p 1 − p 故对于逻辑斯蒂回归 : log P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = log P ( Y = 1 ∣ x ) P ( Y = 0 ∣ x ) = w . x + b 故可理解,我们实际上是用线性回归模型去拟合逼近真实结果的对数几率。 \begin{aligned} 插播tips:&\\ &逻辑斯蒂回归也被称作--对数几率回归\\ &几率odds=\frac{p}{1-p} ~/~对数几率\log(odds)=log\frac{p}{1-p}\\ &故对于逻辑斯蒂回归:\\ &\log\frac{P(Y=1|x)}{1-P(Y=1|x)}=\log\frac{P(Y=1|x)}{P(Y=0|x)}=w.x+b\\ &故可理解,我们实际上是用线性回归模型去拟合逼近真实结果的对数几率。 \end{aligned} 插播tips:逻辑斯蒂回归也被称作−−对数几率回归几率odds=1−pp / 对数几率log(odds)=log1−pp故对于逻辑斯蒂回归:log1−P(Y=1∣x)P(Y=1∣x)=logP(Y=0∣x)P(Y=1∣x)=w.x+b故可理解,我们实际上是用线性回归模型去拟合逼近真实结果的对数几率。
接下来就是最大(对数)似然估计求解最优化参数即可:
我们设 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=1∣x)=π(x), P(Y=0∣x)=1−π(x)。
似然函数: ∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i 对数似然函数: L ( w ) = ∑ i = 1 N [ y i log π ( x i ) + ( 1 − y i ) log ( 1 − π ( x i ) ) ] \begin{aligned} &似然函数:\prod_{i=1}^N [\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}\\ &对数似然函数:L(w)=\sum_{i=1}^{N}[y_i\log\pi(x_i)+(1-y_i)\log(1-\pi(x_i))] \end{aligned} 似然函数:i=1∏N[π(xi)]yi[1−π(xi)]1−yi对数似然函数:L(w)=i=1∑N[yilogπ(xi)+(1−yi)log(1−π(xi))]
L ( w ) L(w) L(w)这玩意是不是看着很眼熟,那你看看下面这个式子:
二分类交叉熵损失函数: L o s s ( w ) = − [ y log y ^ + ( 1 − y ) log ( 1 − y ^ ) ] 二分类交叉熵损失函数:Loss(w)=-[y\log\hat{y}+(1-y)\log(1-\hat{y})] 二分类交叉熵损失函数:Loss(w)=−[ylogy^+(1−y)log(1−y^)]
故最大化对数似然函数,其实和最小化损失函数是一个思路,故可用梯度下降法或牛顿法进行最优化参数求解。最小化损失函数是负迭代方向迭代,最大化似然函数正梯度方向迭代即可。
接着对对数似然函数进行化简:
L ( w ) = ∑ i = 1 N [ y i log π ( x i ) + ( 1 − y i ) log ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i log π ( x i ) 1 − π ( x i ) + log ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i ( w . x ) − log ( 1 + e ( w . x ) ) ] (这里提 一下, w . x 就是之前的 w . x + b , 只是就行了扩展如下) ( w = ( w ( 1 ) , w ( 2 ) , . . . , w ( n ) ) ⟶ ( w ( 1 ) , w ( 2 ) , . . . , w ( n ) , b ) ) ( x = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) ⟶ ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) , 1 ) ) \begin{aligned} L(w)&=\sum_{i=1}^{N}[y_i\log\pi(x_i)+(1-y_i)\log(1-\pi(x_i))]\\ &=\sum_{i=1}^{N}[y_i\log\frac{\pi(x_i)}{1-\pi(x_i)}+\log(1-\pi(x_i))]\\ &=\sum_{i=1}^{N}[y_i(w.x)-\log(1+e^{(w.x)})]\\ (这里提&一下,w.x就是之前的w.x+b,只是就行了扩展如下)\\ (w=(&w^{(1)},w^{(2)},...,w^{(n)})\longrightarrow(w^{(1)},w^{(2)},...,w^{(n)},b))\\ (x=(&x^{(1)}, x^{(2)},...,x^{(n)})\longrightarrow(x^{(1)}, x^{(2)},...,x^{(n)},1)) \end{aligned} L(w)(这里提(w=((x=(=i=1∑N[yilogπ(xi)+(1−yi)log(1−π(xi))]=i=1∑N[yilog1−π(xi)π(xi)+log(1−π(xi))]=i=1∑N[yi(w.x)−log(1+e(w.x))]一下,w.x就是之前的w.x+b,只是就行了扩展如下)w(1),w(2),...,w(n))⟶(w(1),w(2),...,w(n),b))x(1),x(2),...,x(n))⟶(x(1),x(2),...,x(n),1))
我懒得写了,看看下面这个吧(这个博主那抄的:https://blog.csdn.net/daaikuaichuan/article/details/80848958)
感觉上式 ln \ln ln只是说明是对数似然函数,不需要取对数 ln \ln ln。得到个分量偏导,就是对每个参数分量进行一个学习步长 α \alpha α的偏导方向的优化,直到对数似然函数 L ( w ) L(w) L(w)不再显著提升,或达到最大迭代次数。