逻辑斯特回归(logistic regression)
代价函数公式介绍
逻辑回归的代价函数为:
cost
(
θ
,
y
)
=
−
y
l
o
g
(
h
θ
(
x
)
)
−
(
1
−
y
)
l
o
g
(
1
−
h
θ
(
x
)
)
\operatorname{cost}(\theta,y)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))
cost(θ,y)=−ylog(hθ(x))−(1−y)log(1−hθ(x)) 其中
y
y
y为预测的标签,而
h
θ
(
x
)
h_\theta(x)
hθ(x)为模型的预测输出。
由于
y
y
y只能取0和1,因此上面的公式就变成了:
cost
(
h
θ
(
x
)
,
y
)
=
{
−
log
(
h
θ
(
x
)
)
if
y
=
1
−
log
(
1
−
h
θ
(
x
)
)
if
y
=
0
\operatorname{cost}\left(h_{\theta}(x), y\right)=\left\{\begin{aligned} -\log \left(h_{\theta}(x)\right) &\qquad \text { if } y=1 \\ -\log \left(1-h_{\theta}(x)\right) &\qquad \text { if } y=0 \end{aligned}\right.
cost(hθ(x),y)={−log(hθ(x))−log(1−hθ(x)) if y=1 if y=0对应着下面的图像(图片截自于吴恩达的机器学习课程)
意思就是:当
y
=
1
y=1
y=1,也就是标签为正时,模型输出的
h
θ
(
x
)
h_\theta(x)
hθ(x)越接近1,那么损失函数的值越小;当
y
=
0
y=0
y=0,也就是标签为负时,模型输出的
h
θ
(
x
)
h_\theta(x)
hθ(x)越接近0,那么损失函数的值也越小.
那么怎么确保
h
θ
(
x
)
h_\theta(x)
hθ(x)在0到1之间呢?logistic regression利用了sigmoid函数来解决这个问题,也就是把线性模型的输出放入到sigmoid函数中:
s
i
g
m
o
i
d
(
z
)
=
1
1
+
e
−
z
sigmoid(z)=\frac{1}{1+e^{-z}}
sigmoid(z)=1+e−z1
梯度下降公式介绍
其公式也就是,把上面的损失函数对参数 θ \theta θ 求个导得到斜率,然后参数 θ \theta θ 再沿着斜率方向减去适当的值进行参数更新。因此关键在于求导公式