机器学习04:Logistic 回归(逻辑回归)
机器学习04:Logistic 回归
Logistic 回归是一种分类算法
1 什么是分类?
举个例子:肿瘤有恶性肿瘤和良性肿瘤,根据肿瘤的不同特征,比如说大小,我们可以将肿瘤分为恶性肿瘤和良性肿瘤两类,这就是分类。用0表示良性肿瘤,用1表示恶性肿瘤,那么:
y
∈
{
0
,
1
}
y\in\left\{0,1\right\}
y∈{0,1}
在这个分类中,结果只能是0或1,但是假设函数
h
θ
(
x
)
h_\theta(\pmb{x})
hθ(xxx)可能大于1也可能小于0,为了使
h
θ
(
x
)
h_\theta(\pmb{x})
hθ(xxx)保持在
[
0
,
1
]
\left[0,1\right]
[0,1]的范围内,我们引入Logistic 回归的Sigmoid 函数(也可以叫做Logistic 函数):
2 Sigmoid 函数
Sigmoid 函数:
g
(
z
)
=
1
1
+
e
−
z
g(z)=\frac{1}{1+e^{-z}}
g(z)=1+e−z1
Sigmoid 函数的大致形状如下:
在线性回归中:
h
θ
(
x
)
=
θ
T
x
h_\theta(\pmb{x})=\pmb{\theta^T}\pmb{x}
hθ(xxx)=θTθTθTxxx
而在Logistic 回归中:
h
θ
(
x
)
=
g
(
θ
T
x
)
=
1
1
+
e
−
θ
T
x
h_\theta(\pmb{x})=g(\pmb{\theta^T}\pmb{x})=\frac{1}{1+e^{-\theta^Tx}}
hθ(xxx)=g(θTθTθTxxx)=1+e−θTx1
假设函数 h θ ( x ) h_\theta(\pmb{x}) hθ(xxx)结果的含义
还是用上面肿瘤的例子,
h
θ
(
x
)
=
恶
性
肿
瘤
发
生
(
结
果
为
1
)
的
概
率
h_\theta(\pmb{x})=恶性肿瘤发生(结果为1)的概率
hθ(xxx)=恶性肿瘤发生(结果为1)的概率
假如
h
θ
(
x
)
=
0.6
h_\theta(\pmb{x})=0.6
hθ(xxx)=0.6,那么我们可以认为,病人患恶性肿瘤的概率为0.6.
用概率表示为:
P
(
y
=
1
∣
x
;
θ
)
=
0.6
P(y=1|\pmb{x};\pmb{\theta})=0.6
P(y=1∣xxx;θθθ)=0.6
并且,
P
(
y
=
0
∣
x
;
θ
)
+
P
(
y
=
1
∣
x
;
θ
)
=
1
P
(
y
=
0
∣
x
;
θ
)
=
1
−
P
(
y
=
1
∣
x
;
θ
)
P(y=0|\pmb{x};\pmb{\theta})+P(y=1|\pmb{x};\pmb{\theta})=1\\ P(y=0|\pmb{x};\pmb{\theta})=1-P(y=1|\pmb{x};\pmb{\theta})
P(y=0∣xxx;θθθ)+P(y=1∣xxx;θθθ)=1P(y=0∣xxx;θθθ)=1−P(y=1∣xxx;θθθ)
3 决策边界
在Logistic 回归中,
h
θ
(
x
)
=
g
(
θ
T
x
)
g
(
z
)
=
1
1
+
e
−
z
h_\theta(\pmb{x})=g(\pmb{\theta^T}\pmb{x})\\ g(z)=\frac{1}{1+e^{-z}}
hθ(xxx)=g(θTθTθTxxx)g(z)=1+e−z1
假设
h
θ
(
x
)
>
0.5
h_\theta(\pmb{x})>0.5
hθ(xxx)>0.5时,
y
=
1
y=1
y=1;
h
θ
(
x
)
<
0.5
h_\theta(\pmb{x})<0.5
hθ(xxx)<0.5时,
y
=
0
y=0
y=0. 等价于
θ
T
x
>
0
\pmb{\theta^T}\pmb{x}>0
θTθTθTxxx>0时,
y
=
1
y=1
y=1;
θ
T
x
<
0
\pmb{\theta^T}\pmb{x}<0
θTθTθTxxx<0时,
y
=
0
y=0
y=0.
举个例子,假如我们要对下图中的坐标点进行分类,假如
h
θ
(
x
)
=
g
(
θ
0
+
θ
1
x
1
+
θ
2
x
2
)
h_\theta(\pmb{x})=g(\theta_0+\theta_1x_1+\theta_2x_2)
hθ(xxx)=g(θ0+θ1x1+θ2x2),
θ
=
[
−
3
1
1
]
\pmb{\theta}=\begin{bmatrix}-3\\1\\1\end{bmatrix}
θθθ=⎣⎡−311⎦⎤(如何求解
θ
\pmb{\theta}
θθθ,将会在下面介绍)
那么当
θ
T
x
=
−
3
+
x
1
+
x
2
≥
0
\pmb{\theta^T\pmb{x}}=-3+x_1+x_2\ge0
θTxxxθTxxxθTxxx=−3+x1+x2≥0时,可以认为
y
=
1
y=1
y=1,否则,
y
=
0
y=0
y=0. 直线
−
3
+
x
1
+
x
2
=
0
-3+x_1+x_2=0
−3+x1+x2=0就是决策边界。
对于非线性的决策边界,假如
h
θ
(
x
)
=
g
(
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
θ
3
x
1
2
+
θ
4
x
2
2
)
h_\theta(\pmb{x})=g(\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1^2+\theta_4x_2^2)
hθ(xxx)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22),
θ
=
[
−
1
0
0
1
1
]
\pmb{\theta}=\begin{bmatrix}-1\\0\\0\\1\\1\end{bmatrix}
θθθ=⎣⎢⎢⎢⎢⎡−10011⎦⎥⎥⎥⎥⎤,那么当
θ
T
x
=
−
1
+
x
1
2
+
x
2
2
≥
0
\pmb{\theta^T\pmb{x}}=-1+x_1^2+x_2^2\ge0
θTxxxθTxxxθTxxx=−1+x12+x22≥0时,可以认为
y
=
1
y=1
y=1,否则,
y
=
0
y=0
y=0. 曲线
−
1
+
x
1
2
+
x
2
2
=
0
-1+x_1^2+x_2^2=0
−1+x12+x22=0就是决策边界。
当然,还会有更复杂的例子,不在一一说明。
4 代价函数
对于一个训练集,有
m
m
m个样本。
x
∈
[
x
0
x
1
x
2
⋅
⋅
⋅
x
n
]
x\in\begin{bmatrix}x_0\\x_1\\x_2\\···\\x_n\end{bmatrix}
x∈⎣⎢⎢⎢⎢⎡x0x1x2⋅⋅⋅xn⎦⎥⎥⎥⎥⎤,
x
0
=
1
x_0=1
x0=1,
y
∈
{
0
,
1
}
y\in\left\{0,1\right\}
y∈{0,1},
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}}
hθ(x)=1+e−θTx1,如何确定
θ
\pmb{\theta}
θθθ,这就要用到代价函数。
代价函数:
J
(
θ
)
=
1
m
∑
i
=
1
m
C
o
s
t
(
h
θ
(
x
(
i
)
)
,
y
(
i
)
)
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
1
2
(
h
θ
(
x
)
−
y
)
2
J(\theta)=\frac{1}{m}\sum_{i=1}^mCost(h_\theta(x^{(i)}),y^{(i)})\\ Cost(h_\theta(x),y)=\frac{1}{2}(h_\theta(x)-y)^2
J(θ)=m1i=1∑mCost(hθ(x(i)),y(i))Cost(hθ(x),y)=21(hθ(x)−y)2
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
{
−
l
o
g
(
h
θ
(
x
)
)
,
y
=
1
−
l
o
g
(
1
−
h
θ
(
x
)
)
,
y
=
0
Cost(h_\theta(x),y)=\begin{cases}-log(h_\theta(x)),&y=1\\ -log(1-h_\theta(x)),&y=0\end{cases}
Cost(hθ(x),y)={−log(hθ(x)),−log(1−hθ(x)),y=1y=0
则,
J
(
θ
)
=
1
m
∑
i
=
1
m
C
o
s
t
(
h
θ
(
x
(
i
)
)
,
y
(
i
)
)
=
−
1
m
[
∑
i
=
1
m
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
J(\pmb{\theta})=\frac{1}{m}\sum_{i=1}^mCost(h_\theta(x^{(i)}),y^{(i)})\\=-\frac{1}{m}[\sum_{i=1}^my^{(i)}log\,h_\theta(x^{(i)})+(1-y^{(i)})log\,(1-h_\theta(x^{(i)}))]
J(θθθ)=m1i=1∑mCost(hθ(x(i)),y(i))=−m1[i=1∑my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
为了找到合适的
θ
\pmb{\theta}
θθθ,我们需要
min
θ
J
(
θ
)
\min_\theta\,J(\pmb{\theta})
minθJ(θθθ)
5 梯度下降法求解 θ \pmb{\theta} θθθ
R
e
p
e
a
t
:
Repeat:
Repeat:
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
)
\theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta)
θj:=θj−α∂θj∂J(θ)
(批处理,同时更新)
上式中:
∂
∂
θ
j
J
(
θ
)
=
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
\frac{\partial}{\partial\theta_j}J(\theta)=\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
∂θj∂J(θ)=i=1∑m(hθ(x(i))−y(i))xj(i)
6 多分类问题
上面我们所讨论的都是二分类问题,对于多分类的问题,我们可以转换成对多个二分类问题来解决。如下图所示: