逻辑回归
在分类问题中,要预测的变量y为离散值(y=0~1),逻辑回归模型的输出变量范围始终在 0 和 1 之间。
训练集为
{
(
x
(
1
)
,
y
(
1
)
)
,
(
x
(
2
)
,
y
(
2
)
)
,
.
.
.
,
(
x
(
m
)
,
y
(
m
)
)
}
\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\}
{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}
输入
x
∈
[
x
0
x
1
⋮
x
n
]
其中
x
0
=
1
,
y
∈
{
0
,
1
}
x \in \left[ \begin{matrix} x_0 \\ x_1 \\ \vdots \\ x_n \\ \end{matrix} \right] 其中x_0=1,y \in \{0,1\}
x∈
x0x1⋮xn
其中x0=1,y∈{0,1}
逻辑回归模型的假设是:
h
θ
(
x
)
=
g
(
θ
T
X
)
h_\theta(x)=g(\theta^{\mathrm T}X)
hθ(x)=g(θTX)
X
X
X为特征变量,
g
(
.
)
g(.)
g(.)为逻辑函数
g
(
z
)
=
1
1
+
e
−
z
g(z)=\frac{1}{1+e^{-z}}
g(z)=1+e−z1
如果对于逻辑回归沿用线性回归的代价函数,此时的代价函数是非凸函数,不利于找局部最优值,
逻辑回归的代价函数为:
J
(
θ
)
=
1
m
∑
i
=
1
m
C
o
s
t
(
h
θ
(
x
(
i
)
)
,
y
(
i
)
)
J(\theta)=\frac{1}{m}\sum^m_{i=1}{Cost(h_{\theta}(x^{(i)}),y^{(i)})}
J(θ)=m1i=1∑mCost(hθ(x(i)),y(i))
C o s t ( h θ ( x ) , y ) = { − l o g ( h θ ( x ) ) , i f y = 1 − l o g ( 1 − h θ ( x ) ) , i f y = 0 Cost(h_{\theta}(x),y)=\left\{ \begin{matrix} -log(h_{\theta}(x)) ,if\quad y=1\\ -log(1-h_{\theta}(x)) ,if\quad y=0 \end{matrix} \right. Cost(hθ(x),y)={−log(hθ(x)),ify=1−log(1−hθ(x)),ify=0
C o s t ( h θ ( x ) , y ) = − y ⋅ l o g ( h θ ( x ) ) − ( 1 − y ) ⋅ l o g ( 1 − h θ ( x ) ) Cost(h_{\theta}(x),y)=-y\cdot log(h_{\theta}(x))-(1-y)\cdot log(1-h_{\theta}(x)) Cost(hθ(x),y)=−y⋅log(hθ(x))−(1−y)⋅log(1−hθ(x))
当实际的 𝑦 = 1 且 h θ ( 𝑥 ) ℎ_{\theta}(𝑥) hθ(x)也为 1 时,误差为 0,
当 𝑦 = 1 但 h θ ( 𝑥 ) ℎ_{\theta}(𝑥) hθ(x)不为 1 时,误差随着 h θ ( 𝑥 ) ℎ_{\theta}(𝑥) hθ(x)变小而变大;
当实际的 𝑦 = 0 且 h θ ( 𝑥 ) ℎ_{\theta}(𝑥) hθ(x)也为 0 时,误差为 0,
当𝑦 = 0 但 h θ ( 𝑥 ) ℎ_{\theta}(𝑥) hθ(x)不为 0 时误差随着 h θ ( 𝑥 ) ℎ_{\theta}(𝑥) hθ(x)的变大而变大。
利用梯度下降算法
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
)
\theta_{j}:=\theta_{j}-\alpha\frac{\partial }{\partial \theta_{j}}J(\theta)
θj:=θj−α∂θj∂J(θ)
代价函数的导数为
∂
∂
θ
j
J
(
θ
)
=
1
m
∑
i
=
1
m
[
h
θ
(
x
(
i
)
)
−
y
(
i
)
]
x
j
(
i
)
\frac{\partial }{\partial \theta_{j}}J(\theta)=\frac{1}{m}\sum_{i=1}^{m}{[h_{\theta}(x^{(i)})-y^{(i)}]}x_j^{(i)}
∂θj∂J(θ)=m1i=1∑m[hθ(x(i))−y(i)]xj(i)
则最终结果为(可同时更新所有的
θ
\theta
θ)
θ
j
:
=
θ
j
−
α
1
m
∑
i
=
1
m
[
h
θ
(
x
(
i
)
)
−
y
(
i
)
]
x
j
(
i
)
\theta_{j}:=\theta_{j}-\alpha\frac{1}{m}\sum_{i=1}^{m}{[h_{\theta}(x^{(i)})-y^{(i)}]}x_j^{(i)}
θj:=θj−αm1i=1∑m[hθ(x(i))−y(i)]xj(i)
此时的梯度函数跟线性回归不太相同,因为
h
θ
(
x
)
h_\theta(x)
hθ(x)不同。