手推Logistic Regression及matlab的底层实现
作者:互联网
前言
Logistic Regression,也称为LR,逻辑斯蒂回归。虽然名称中有回归二字,但实际上是一种二分类算法。注意,适用范围仅仅是二分类。
公式推导
假设数据集 x 1 , x 2 , . . . , x n x^{1},x^{2},...,x^{n} x1,x2,...,xn,分别属于类别 C 1 , C 2 {C_{1},C_{2}} C1,C2,将类别C1对应标签1,类别C2对应标签0。
f w , b ( x ) = P w , b ( C 1 ∣ x ) f_{w,b}(x)=P_{w,b}(C_{1}|x) fw,b(x)=Pw,b(C1∣x)表示给定w,b时,x属于类别 C 1 C_{1} C1的概率。
σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+e−z1为sigmoid函数。则 f w , b ( x ) = σ ( ∑ i w i x i + b ) f_{w,b} (x)=\sigma(\sum_{i}w_{i}x_{i}+b) fw,b(x)=σ(∑iwixi+b)为所用的LR模型,其值介于0-1之间。
对数据集适用最大似然估计,假设
L
(
w
,
b
)
L(w,b)
L(w,b)为最大似然函数,
w
∗
,
b
∗
w^{*},b^{*}
w∗,b∗为模型所求参数。则求解目标为
w
,
b
a
r
g
m
a
x
L
(
w
,
b
)
=
a
r
g
m
i
n
(
−
L
(
w
,
b
)
)
=
w
∗
,
b
∗
\overset{arg maxL(w,b)}{w,b}=arg min (-L(w,b))=w^{*},b^{*}
w,bargmaxL(w,b)=argmin(−L(w,b))=w∗,b∗
最优化问题一般都转化为最小值问题求解。
−
l
n
L
(
w
,
b
)
=
−
l
n
[
(
y
1
f
(
x
1
)
+
(
1
−
y
1
)
(
1
−
f
(
x
1
)
)
.
.
.
(
y
n
f
(
x
n
)
+
(
1
−
y
n
)
(
1
−
f
(
x
n
)
)
]
=
∑
n
−
[
y
n
l
n
f
(
x
n
)
+
(
1
−
y
n
)
l
n
(
1
−
f
(
x
n
)
)
]
-ln L(w,b)=-ln[(y^{1}f(x^{1})+(1-y^{1})(1-f(x^{1}))...(y^{n}f(x^{n})+(1-y^{n})(1-f(x^{n}))]\\ =\sum_{n}-[y^{n}lnf(x^{n})+(1-y^{n})ln(1-f(x^{n}))]
−lnL(w,b)=−ln[(y1f(x1)+(1−y1)(1−f(x1))...(ynf(xn)+(1−yn)(1−f(xn))]=n∑−[ynlnf(xn)+(1−yn)ln(1−f(xn))]
这里的公式如何来的呢?我们可以想下我们适用LR进行分类的目的是什么,希望分类过程中,标签为1的样本预测概率f(x)越接近1越好,标签为0的样本预测概率f(x)越接近0越好。
公式求解
求解
w
∗
与
b
∗
w^{*}与b^{*}
w∗与b∗时,我们可以将目标函数对
w
i
w_{i}
wi进行求导。
我们先计算:
∂
l
n
f
(
x
)
∂
w
i
=
∂
l
n
f
(
x
)
∂
z
∂
z
∂
w
i
\frac{\partial lnf(x)}{\partial w_{i}}=\frac{\partial lnf(x)}{\partial z} \frac{\partial z}{\partial w_{i}}
∂wi∂lnf(x)=∂z∂lnf(x)∂wi∂z
由于
z
=
∑
w
i
x
i
+
b
z=\sum w_{i}x_{i}+b
z=∑wixi+b,可以得到
∂
z
∂
w
i
=
x
i
\frac{\partial z}{\partial w_{i}}=x_{i}
∂wi∂z=xi
而
∂
l
n
σ
(
z
)
∂
z
=
1
σ
(
z
)
∂
σ
(
z
)
∂
z
=
1
σ
(
z
)
σ
(
z
)
(
1
−
σ
(
z
)
)
=
1
−
σ
(
z
)
\frac{\partial ln \sigma(z)}{\partial z}=\frac{1}{\sigma (z)}\frac{\partial \sigma(z)}{\partial z}=\frac{1}{\sigma (z)}{\sigma (z)}(1-{\sigma (z)})=1-{\sigma (z)}
∂z∂lnσ(z)=σ(z)1∂z∂σ(z)=σ(z)1σ(z)(1−σ(z))=1−σ(z)
因此可以得到,
∂
l
n
f
(
x
)
∂
w
i
=
(
1
−
σ
(
z
)
)
x
i
\frac{\partial lnf(x)}{\partial w_{i}}=(1-{\sigma (z)})x_{i}
∂wi∂lnf(x)=(1−σ(z))xi
标签:frac,ln,wi,matlab,Logistic,partial,lnf,sigma,Regression 来源: https://blog.csdn.net/weixin_43249038/article/details/121212711