逻辑回归(Logistic Regression,LR)公式推导
什么是逻辑回归LR 是 Logistic Regression Classifier,本质上是线性回归,特殊之处在于特征到结果的映射中加入了一层逻辑函数 g(z) 是 sigmoid 函数。因此逻辑回归 = 线性回归 + sigmoid。线性回归公式:y=wTx+by = w^Tx + by=wTx+b有时候为了方便,将权值向量和输入向量加以扩充,仍记作 w,xw, xw,x 即 w=(w(1),
什么是逻辑回归
LR 是 Logistic Regression Classifier,本质上是线性回归,特殊之处在于特征到结果的映射中加入了一层逻辑函数 g(z) 是 sigmoid 函数。因此逻辑回归 = 线性回归 + sigmoid。
线性回归公式:
y
=
w
T
x
+
b
y = w^Tx + b
y=wTx+b
有时候为了方便,将权值向量和输入向量加以扩充,仍记作
w
,
x
w, x
w,x 即
w
=
(
w
(
1
)
,
w
(
2
)
,
.
.
.
,
w
(
n
)
,
b
)
,
x
=
(
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
w
)
,
1
)
w = (w^{(1)}, w^{(2)}, ... , w^{(n)}, b), x = (x^{(1)}, x^{(2)}, ... , x^{(w)}, 1)
w=(w(1),w(2),...,w(n),b),x=(x(1),x(2),...,x(w),1)
即:
y
=
w
x
y = wx
y=wx
sigmoid 公式:
σ
(
x
)
=
1
1
+
e
−
x
\sigma(x) = \frac{1}{1+e^{-x}}
σ(x)=1+e−x1
因此,逻辑回归的公式:
π
(
x
)
=
1
1
+
e
−
w
T
x
\pi(x) = \frac{1}{1+e^{-w^Tx}}
π(x)=1+e−wTx1
逻辑回归的优势
逻辑回归的优点:
- 它是直接对分类可能性进行建模,无需实现假设数据分布,这样就避免了假设分布不准确所带来的问题;
- 它不是仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用;
- 逻辑回归函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求取最优解。
- 对于线性数据,(大部分时候)逻辑回归的拟合和计算都非常快,计算效率优于SVM和随机森林
逻辑回归的推导
假设数据集为:
D
a
t
a
:
(
x
i
,
y
i
)
i
=
1
N
Data:({{x}_{i}},{{y}_{i}})_{i=1}^{N}
Data:(xi,yi)i=1N
其中:
x
i
∈
R
p
,
y
∈
0
,
1
{{x}_{i}}\in {{\mathbb{R}}^{p}},y\in 0,1
xi∈Rp,y∈0,1
线性回归是将向量
x
x
x 映射为具体的数值 y (连续),而逻辑回归是用来解决分类问题(通常为二分类问题),希望得到0或1的概率(概率区间为[0, 1]),即通过某种方式将数值 y 映射到区间 [0, 1] 范围内。逻辑回归采用 sigmoid 函数来完成这样的映射,从而建立 y 与 x 之间的概率判别模型
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)
有
p
1
=
P
(
y
=
1
∣
x
)
=
1
1
+
e
−
w
T
x
p1=P(y=1|x)=\frac{1}{1+e^{-w^Tx}}
p1=P(y=1∣x)=1+e−wTx1
p
0
=
p
(
y
=
0
∣
x
)
=
1
−
P
(
y
=
1
∣
x
)
=
e
−
w
T
x
1
+
e
−
w
T
x
p0 = p(y=0|x) = 1 - P(y=1|x) = \frac{e^{-w^Tx}}{1+e^{-w^Tx}}
p0=p(y=0∣x)=1−P(y=1∣x)=1+e−wTxe−wTx
得到
P
(
Y
∣
X
)
=
p
1
Y
p
0
1
−
Y
,
Y
∈
0
,
1
P(Y|X) = p_1^Yp_0^{1-Y}, Y∈0,1
P(Y∣X)=p1Yp01−Y,Y∈0,1
对应的似然函数为
∏
i
=
1
N
P
(
y
i
∣
x
i
)
\prod\limits_{i=1}^{N}{P({{y}_{i}}|{{x}_{i}})}
i=1∏NP(yi∣xi)
取对数,得到对数似然函数:
L
(
w
)
=
∏
i
=
1
N
log
P
(
y
i
∣
x
i
)
=
∑
i
=
1
N
(
y
i
log
p
1
+
(
1
−
y
i
)
log
p
0
)
=
∑
i
=
1
N
(
y
i
(
log
p
1
−
log
(
1
−
p
1
)
)
+
log
(
1
−
p
1
)
)
=
∑
i
=
1
N
(
y
i
log
p
1
1
−
p
1
+
log
(
1
−
p
1
)
)
=
∑
i
=
1
N
(
y
i
(
w
T
x
i
)
+
log
e
−
w
T
x
i
1
+
e
−
w
T
x
i
)
=
∑
i
=
1
N
(
y
i
(
w
T
x
i
)
+
log
1
1
+
e
w
T
x
i
)
=
∑
i
=
1
N
(
y
i
(
w
T
x
i
)
−
log
(
1
+
e
w
T
x
i
)
\begin{aligned} L(w) & =\prod\limits_{i=1}^{N}{\log P({{y}_{i}}|{{x}_{i}})} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}\log {{p}_{1}}+(1-{{y}_{i}})\log {{p}_{0}})} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}(\log {{p}_{1}}-\log (1-{{p}_{1}}))+\log (1-{{p}_{1}}))} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}\log \frac{{{p}_{1}}}{1-{{p}_{1}}}+\log (1-{{p}_{1}}))} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}({{w}^{T}}{{x}_{i}})+\log \frac{{{e}^{-{{w}^{T}}{{x}_{i}}}}}{1+{{e}^{-{{w}^{T}}{{x}_{i}}}}})} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}({{w}^{T}}{{x}_{i}})+\log \frac{1}{1+{{e}^{{{w}^{T}}{{x}_{i}}}}})} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}({{w}^{T}}{{x}_{i}})-\log (1+{{e}^{{{w}^{T}}{{x}_{i}}}})} \\ \end{aligned}
L(w)=i=1∏NlogP(yi∣xi)=i=1∑N(yilogp1+(1−yi)logp0)=i=1∑N(yi(logp1−log(1−p1))+log(1−p1))=i=1∑N(yilog1−p1p1+log(1−p1))=i=1∑N(yi(wTxi)+log1+e−wTxie−wTxi)=i=1∑N(yi(wTxi)+log1+ewTxi1)=i=1∑N(yi(wTxi)−log(1+ewTxi)
对
L
(
w
)
L(w)
L(w) 求极大值(即极大似然估计值),即可得到
w
w
w 的估计值
w
^
=
arg
max
w
L
(
w
)
\hat{w}=\underset{w}{\mathop{\arg \max }}\,L(w)
w^=wargmaxL(w)
这样,问题就变成了以对数似然函数为目标的最优化问题,可采用梯度下降法或拟牛顿法。
梯度
令
π
(
w
T
x
i
)
=
1
1
+
e
−
w
T
x
\pi(w^Tx_i) = \frac{1}{1+e^{-w^Tx}}
π(wTxi)=1+e−wTx1
此时梯度
∂
L
(
w
)
∂
w
=
∂
∂
w
[
∑
i
=
1
N
(
y
i
(
w
T
x
i
)
−
log
(
1
+
e
w
T
x
i
)
)
]
=
∑
i
=
1
N
(
y
i
x
i
−
x
i
e
w
T
x
i
1
+
e
w
T
x
i
)
=
∑
i
=
1
N
(
y
i
−
e
w
T
x
i
1
+
e
w
T
x
i
)
x
i
=
∑
i
=
1
N
(
y
i
−
1
1
+
e
−
w
T
x
i
)
x
i
=
∑
i
=
1
N
(
y
i
−
π
(
w
T
x
i
)
)
x
i
\begin{aligned} \frac{\partial L(w)}{\partial w} & =\frac{\partial }{\partial w}[\sum\limits_{i=1}^{N}{({{y}_{i}}({{w}^{T}}{{x}_{i}})-\log (1+{{e}^{{{w}^{T}}{{x}_{i}}}}))}] \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}{{x}_{i}}-\frac{{{x}_{i}}{{e}^{{{w}^{T}}{{x}_{i}}}}}{1+{{e}^{{{w}^{T}}{{x}_{i}}}}})} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}-\frac{{{e}^{{{w}^{T}}{{x}_{i}}}}}{1+{{e}^{{{w}^{T}}{{x}_{i}}}}})}{{x}_{i}} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}-\frac{1}{1+{{e}^{-{{w}^{T}}{{x}_{i}}}}})}{{x}_{i}} \\ & =\sum\limits_{i=1}^{N}{({{y}_{i}}-\pi ({{w}^{T}}{{x}_{i}}))}{{x}_{i}} \\ \end{aligned}
∂w∂L(w)=∂w∂[i=1∑N(yi(wTxi)−log(1+ewTxi))]=i=1∑N(yixi−1+ewTxixiewTxi)=i=1∑N(yi−1+ewTxiewTxi)xi=i=1∑N(yi−1+e−wTxi1)xi=i=1∑N(yi−π(wTxi))xi
因为求的是最大似然估计值,所以采用梯度上升法:
w
j
:
=
w
j
+
α
∑
i
=
1
N
(
y
i
−
π
(
w
T
x
i
)
)
x
i
j
{{w}_{j}}:={{w}_{j}}+\alpha \sum\limits_{i=1}^{N}{({{y}_{i}}-\pi ({{w}^{T}}{{x}_{i}}))}x_{i}^{j}
wj:=wj+αi=1∑N(yi−π(wTxi))xij
参考资料
[2]《统计学习方法第二版》
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)