逻辑回归(Logistic Regression)
首先需要明确两个概念:
- 逻辑回归并非回归算法,而是分类算法。“回归”一词来源于最佳拟合(拟合:调整分类边界),可简单理解为用一条直线对一些数据点进行拟合(该线称为最佳拟合直线),而拟合过程称为回归。
- logistic分类的思想:根据现有数据对分类边界建立回归公式。
分类问题
对于二分类问题:
y
ϵ
{
0
,
1
}
y\epsilon\{0,1\}
yϵ{0,1} 其中,0表示负例,1表示正例。
对于多分类问题:
y
ϵ
{
0
,
1
,
2
,
3
,
.
.
.
,
n
}
y\epsilon\{0,1,2,3,...,n\}
yϵ{0,1,2,3,...,n}
若分类器使用的是回归模型,并且模型已经训练好,可设置一个阈值:
若
h
θ
(
x
)
≥
0.5
h_{\theta}(x)\geq0.5
hθ(x)≥0.5,y属于正例;若
h
θ
(
x
)
<
0.5
h_{\theta}(x)<0.5
hθ(x)<0.5,y属于负例。
对于二分类问题,线性回归模型Hypothesis输出值
h
θ
(
x
)
h_{\theta}(x)
hθ(x)可以大于1也可以小于0。而对于逻辑回归,Hypothesis输出值介于0到1之间:
0
≤
h
θ
(
x
)
≤
1
0\leq h_{\theta}(x)\leq1
0≤hθ(x)≤1
代价函数
将Hypothesis输出值界定在0到1之间,需引入函数g,令Hypothesis表示为:
h
θ
(
x
)
=
g
(
θ
T
x
)
h_{\theta}(x)=g(\theta^Tx)
hθ(x)=g(θTx)
g称为Sigmoid Function或Logisitic Function:
g
(
z
)
=
1
1
+
e
−
z
g(z)=\frac1{1+e^{-z}}
g(z)=1+e−z1
其函数图形为:
其中,
θ
\theta
θ为参数。综合以上两个式子,可得到LR模型的数学表达式:
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
h_{\theta}(x)=\frac1{1+e^{-\theta^Tx}}
hθ(x)=1+e−θTx1
决策边界
假设给定阈值0.5,当
h
θ
(
x
)
≥
0.5
h_{\theta}(x)\geq0.5
hθ(x)≥0.5时,
y
=
1
y=1
y=1;当
h
θ
(
x
)
<
0.5
h_{\theta}(x)<0.5
hθ(x)<0.5时,
y
=
0
y=0
y=0。对于
h
θ
(
x
)
=
g
(
θ
T
x
)
≥
0.5
h_{\theta}(x)=g(\theta^Tx)\geq0.5
hθ(x)=g(θTx)≥0.5,则
θ
T
x
≥
0
\theta^Tx\geq0
θTx≥0,意味着预估
y
=
1
y=1
y=1;反之,当预测
y
=
0
y=0
y=0时,
θ
T
x
<
0
\theta^Tx<0
θTx<0。
故可认为
θ
T
x
=
0
\theta^Tx=0
θTx=0是一个决策边界,当其大于或小于0时,LR分别预测不同的分类结果。如:
h
θ
(
x
)
=
g
(
θ
0
+
θ
1
x
1
+
θ
2
x
2
)
h_{\theta}(x)=g(\theta_0+\theta_1x_1+\theta_2x_2)
hθ(x)=g(θ0+θ1x1+θ2x2)
θ
0
,
θ
1
,
θ
2
\theta_0,\theta_1,\theta_2
θ0,θ1,θ2,分别取-3,1,1,当
−
3
+
x
1
+
x
2
≥
0
-3+x_1+x_2\geq0
−3+x1+x2≥0时,
y
=
1
y=1
y=1,则
x
1
+
x
2
=
3
x_1+x_2=3
x1+x2=3是一个决策边界:
这是一个线性的决策边界,当
h
θ
(
x
)
h_{\theta}(x)
hθ(x)更复杂时,可得到非线性的决策边界:
h
θ
(
x
)
=
g
(
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
θ
3
x
1
2
+
θ
4
x
2
2
)
h_{\theta}(x)=g(\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1^2+\theta_4x_2^2)
hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22)
θ
0
,
θ
1
,
θ
2
,
θ
3
,
θ
4
\theta_0,\theta_1,\theta_2,\theta_3,\theta_4
θ0,θ1,θ2,θ3,θ4分别取值-1,0,0,1,1,当
x
1
2
+
x
2
2
≥
1
x_1^2+x_2^2\geq1
x12+x22≥1时,
y
=
1
y=1
y=1,此时决策边界是一个圆:
代价函数(Cost Function)
LR的代价函数为对数似然损失函数:
f
(
x
)
=
{
−
l
o
g
(
h
θ
(
x
)
)
if y=1
−
l
o
g
(
1
−
h
θ
(
x
)
)
if y=0
f(x)= \begin{cases} -log( h_{\theta}(x))& \text{if y=1}\\ -log(1- h_{\theta}(x))& \text{if y=0} \end{cases}
f(x)={−log(hθ(x))−log(1−hθ(x))if y=1if y=0
加入惩罚项:
J
(
θ
)
=
1
m
∑
i
=
1
m
C
o
s
t
(
h
θ
(
x
(
i
)
)
,
y
(
i
)
)
J(\theta)=\frac1m\sum_{i=1}^{m}Cost(h_{\theta}(x^{(i)}),y^{(i)})
J(θ)=m1i=1∑mCost(hθ(x(i)),y(i))
最终的代价函数公式为:
J
(
θ
)
=
1
m
[
∑
i
=
1
m
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
J(\theta)=\frac1m\left[\sum_{i=1}^{m}y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))\right]
J(θ)=m1[i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
取似然函数为:
L
(
θ
)
=
∏
i
=
1
m
P
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
∏
i
=
1
m
(
h
θ
(
x
(
i
)
)
)
y
(
i
)
(
1
−
l
o
g
h
θ
(
x
(
i
)
)
)
1
−
y
(
i
)
L(\theta)=\prod_{i=1}^{m}P(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^{m}(h_{\theta}(x^{(i)}))^{y^{(i)}}(1-logh_{\theta}(x^{(i)}))^{1-y{(i)}}
L(θ)=i=1∏mP(y(i)∣x(i);θ)=i=1∏m(hθ(x(i)))y(i)(1−loghθ(x(i)))1−y(i)
对数似然函数为:
l
(
θ
)
=
l
o
g
L
(
θ
)
=
∑
i
=
1
m
(
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
)
l(\theta)=logL(\theta)=\sum_{i=1}^{m}\left(y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))\right)
l(θ)=logL(θ)=i=1∑m(y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i))))
最大似然估计就是求使
l
(
θ
)
l(\theta)
l(θ)取最大值时的
θ
\theta
θ。
多类分类问题
处理方法:保留其中一类,剩下的作为另一类。
分别计算其中一类相对于其他类的概率:
对于每一个类i训练一个LR分类器,并预测 y=i 的概率。对于每一个新的输入变量x,分布对每一个类别进行预测,取最大概率的那个类作为分类结果。
参考链接:
[1]: http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference