什么是逻辑回归
逻辑回归可以理解为我们通常见到的分类问题,比如一张图片,里面是不是猫。结果只有两种,是或者不是,这就是一个二分类问题。
怎么进行逻辑回归
我们还是使用线性回归的理论来进行逻辑回归,将输入数据量化,然后生成一个输出值,当输出值在一定范围内的时候,我们认为这是我们想要的结果(比如这张图片是一只猫),输出不在指定范围内的时候,我们认为这不是我们想要的结果,是一个反例(这张图片不是一只猫)。
判断的区间如何界定
我们将数据量化之后,输入输出值都是一堆数字。那么判断数字最简单的方式就是正负,比如正数我们认为是正例,负数是反例。
那么新的问题来了,判断是否的时候,我们还想知道是正例的可能性有多大?是80%的几率是正例?还是51%的几率是正例?这该怎么办呢?
毕竟如果只以正负做判断,那么我们没办法界定这个程度。通常我们习惯说这个有百分之多少的几率是什么什么,那么我们的输出取值范围如果是(0,1)就完美了,刚好对应0到100%。
此时我们需要一个函数,将我们输出值映射到我们期望的输出区域(0,1),此时就是下面这个函数大显身手的时候了,它的取值范围刚好是(0,1),并且输入值取值为0的时候,映射的输出值刚好在中间点0.5,接下来我们看一下这个函数。
y
=
1
1
+
e
−
x
y=\frac{1}{1+e^{-x}}
y=1+e−x1
这个就是著名的sigmoid函数,它在坐标系中的图像是这样的,刚好满足我们的期望。
图片来自百度百科
得到对数几率
sigmoid函数可以达到我们一定的期望,但是还可以继续走下去。
我们接着看sigmoid函数。通过变换,我们先得到x基于y的函数。
1
+
e
−
x
=
1
y
1+e^{-x} = \frac{1}{y}
1+e−x=y1
e
−
x
=
1
−
y
y
e^{-x}=\frac{1-y}{y}
e−x=y1−y
两边同时取对数
−
x
=
ln
1
−
y
y
-x=\ln\frac{1-y}{y}
−x=lny1−y
x
=
ln
y
1
−
y
x=\ln\frac{y}{1-y}
x=ln1−yy
我们已经知道了,y就是我们认为是正例的可能性,那么1-y其实就是反例的可能性。
y
1
−
y
\frac{y}{1-y}
1−yy就是x作为正例的相对可能性,那么
l
n
y
1
−
y
ln\frac{y}{1-y}
ln1−yy就是这一节要求的对数几率。
实际上我们通过线性回归模型的预测结果去逼近真实标记的对数几率,因此,对应的模型称为对数几率回归。虽然名字是回归,但实际是一种分类方法!
拓展
将上面对数几率回归的表达式中,输入项X转换为线性回归中的多元输入,y视为类后验概率估计p(y=1|x),表达式可重写为
ln
p
(
y
=
1
∣
x
)
p
(
y
=
0
∣
x
)
=
ω
T
x
+
b
\ln\frac{p(y=1|x)}{p(y=0|x)}=\mathbf{\omega ^Tx} + b
lnp(y=0∣x)p(y=1∣x)=ωTx+b
其中ω是输入的系数矩阵,x为参数矩阵
我们可以算出
p
(
y
=
1
∣
x
)
=
e
ω
T
x
+
b
1
+
e
ω
T
x
+
b
p(y=1|x)=\frac{e^{\mathbf{\omega^Tx}+b}}{1+e^{\mathbf{\omega^Tx}+b}}
p(y=1∣x)=1+eωTx+beωTx+b
p
(
y
=
0
∣
x
)
=
1
1
+
e
ω
T
x
+
b
p(y=0|x)=\frac{1}{1+e^{\mathbf{\omega^Tx}+b}}
p(y=0∣x)=1+eωTx+b1
我们所期望的结果当然是每个样本都属于其真实标记的概率越大越好。
使用似然函数表示
L
(
ω
,
b
)
=
∏
p
(
y
i
∣
x
i
;
ω
,
b
)
L(\mathbf\omega,b)=\prod p(y_i|\mathbf x_i;\mathbf\omega,b)
L(ω,b)=∏p(yi∣xi;ω,b)
因为是连乘,计算效率会很低,所以对上述公式取对数,得到对数似然
l
(
ω
,
b
)
=
∑
1
m
ln
p
(
y
i
∣
x
i
;
ω
,
b
)
l(\mathbf\omega,b)=\sum_1^m\ln p(y_i|\mathbf x_i;\mathbf\omega,b)
l(ω,b)=∑1mlnp(yi∣xi;ω,b)
为了使公式简化,我们令β=(ω;b),
x
^
=
(
x
;
1
)
\mathbf{\hat x=(x;}1)
x^=(x;1)则
ω
T
x
+
b
\mathbf{\omega^Tx}+b
ωTx+b可以简写为
β
T
x
^
\beta^T\mathbf{\hat x}
βTx^。再令
p
1
(
x
^
;
β
)
=
p
(
y
=
1
∣
x
^
;
β
)
p_1(\mathbf{\hat x};\beta)=p(y=1|\mathbf{\hat x};\beta)
p1(x^;β)=p(y=1∣x^;β)
p
0
(
x
^
;
β
)
=
p
(
y
=
0
∣
x
^
;
β
)
=
1
−
p
1
(
x
^
;
β
)
p_0(\mathbf{\hat x};\beta)=p(y=0|\mathbf{\hat x};\beta)=1-p_1(\mathbf{\hat x};\beta)
p0(x^;β)=p(y=0∣x^;β)=1−p1(x^;β)
这样
l
(
ω
,
b
)
l(\mathbf\omega,b)
l(ω,b)就可以写为
l
(
β
)
=
∑
1
m
(
−
y
i
β
T
x
^
+
ln
(
1
+
e
β
T
x
^
)
)
l(\beta)=\sum_1^m(-y_i\beta^T\mathbf{\hat x}+\ln (1+e^{\beta^T\mathbf{\hat x}}))
l(β)=∑1m(−yiβTx^+ln(1+eβTx^))
我们期望的是似然函数
L
(
ω
,
b
)
L(\mathbf\omega,b)
L(ω,b)的最大值,取对数之后,就是要找到
l
(
ω
,
b
)
l(\mathbf\omega,b)
l(ω,b)的最小值。刚好对数似然是一个高阶可导连续凸函数,类似于线性回归,可以使用梯度下降法等可以得到最优解,这样我们就找到了所需的参数矩阵ω。
小结
本章主要记录了进行逻辑回归时,是如何通过线性回归的量化,将输出数据映射到一个狭小的区间,便于对判断程度进行估计。然后引入了对数几率回归的推导,最后尝试解释了通过似然函数变换为对数似然函数,寻找参数系数最优解的情况。本文偏向理论理解,就没有示例代码了。
如有描述不当或错误的地方,欢迎指正!