问题
逻辑回归相比于线性回归,有何异同
问题背景
逻辑回归与线性回归是机器学习中非常常用和基础的模型,面试当中也会经常被问到,而两者有着很多共同点,就连名字都差不多一样,所以会被问道两者的区别也是太正常不过了。我们都知道,回归是对连续值的预测,那么“逻辑回归”是回归问题吗?
我们首先聊聊逻辑回归这个名字的由来:对逻辑回归公式进行整理,我们可以得到
l
o
g
p
1
−
p
=
ω
T
x
+
b
log{\frac{p}{1-p}} = \omega^T x+b
log1−pp=ωTx+b,其中
p
=
P
(
y
=
1
∣
x
)
p = P(y=1|x)
p=P(y=1∣x) 也就是将给定输入x
预测为正类的概率。如果将一个事件的几率(odd)定义为该事件发生的概率与不发生的概率的比值
p
1
−
p
\frac{p}{1-p}
1−pp,那么逻辑回归就可以看做是对
y
=
1
∣
x
y = 1 | x
y=1∣x 这一事件的对数几率的线性回归,于是“逻辑回归”这个称谓就延续了下来。
问题解答
两者最本质的区别:逻辑回归处理的是分类问题,而线性回归处理的是回归问题。
两者最大的区别:逻辑回归将y
视为因变量而不是
p
1
−
p
\frac{p}{1-p}
1−pp,而y
是类别标签,如二分类中y
可以是 0 或 1 ,是一个离散值,但线性回归中的因变量是连续值。
两者相同之处:
- 都是使用极大似然估计法来估计模型参数:这里可能会有点疑问是说线性回归中明明是使用均方误差即最小二乘法来估计的,不是极大似然估计呀。其实实际上在预测值与真实值之间的误差满足正态分布的假设下,最小化均方误差与极大似然估计在本质上是一样的。
- 二者在求解超参数的过程中,都可以使用梯度下降的方法,这也是监督学习中一个常见的相似之处
以上内容参考自《百面机器学习》的逻辑回归一节
拓展
这里的拓展主要是线性回归与逻辑回归的模型定义与求解过程。
线性回归
线性回归试图学得
f
(
x
i
)
=
ω
x
i
+
b
,
使
得
f
(
x
i
)
≈
y
i
其
中
y
i
为
真
实
值
,
而
f
(
x
i
)
为
预
测
值
f(x_i) = \omega x_i + b,使得f(x_i)\approx y_i \\ 其中y_i为真实值,而f(x_i)为预测值
f(xi)=ωxi+b,使得f(xi)≈yi 其中yi为真实值,而f(xi)为预测值
那怎么去确定参数
ω
\omega
ω 和
b
b
b 呢,显然关键在于怎么去衡量
f
(
x
i
)
f(x_i)
f(xi) 与
y
i
y_i
yi 之间的距离,而在回归任务中一般使用均方误差,因此我们的目标变为让均方误差最小化:
(
ω
∗
,
b
)
=
a
r
g
m
i
n
(
ω
,
b
)
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
(\omega^*, b) = arg min_{(\omega, b)}\sum_{i=1}^{m}({f(x_i)}-y_i)^2
(ω∗,b)=argmin(ω,b)i=1∑m(f(xi)−yi)2
接下来的模型参数求解可以对
ω
\omega
ω 与
b
b
b 进行求导或者使用梯度下降法。
逻辑回归
在线性回归的基础上,逻辑回归可以理解为只需找到一个单调可微函数将线性模型的预测值与把该输入归类为正类的概率$ p = P(y = 1 | x)$ 联系起来即可,即将线性回归得到的连续值映射为二分类的类别0或1,因此我们自然而然就想到了sigomid函数,它的函数形式如下:
y
=
1
1
+
e
−
z
我
们
令
z
=
ω
T
x
+
b
,
令
y
为
把
该
输
入
x
归
类
为
为
正
类
的
概
率
p
,
便
可
以
得
到
:
p
=
1
1
+
e
−
(
ω
T
+
b
)
y = \frac{1}{1+e^{-z}} \\ 我们令z = \omega^Tx + b,令y为把该输入x归类为为正类的概率p,便可以得到:\\ p = \frac{1}{1+e^{-(\omega^T+b)}}
y=1+e−z1 我们令z=ωTx+b,令y为把该输入x归类为为正类的概率p,便可以得到:p=1+e−(ωT+b)1
对以上公式稍做变换就可以得到
p
=
P
(
y
=
1
∣
x
)
=
e
ω
T
x
+
b
1
+
e
ω
T
x
+
b
1
−
p
=
P
(
y
=
0
∣
x
)
=
1
1
+
e
ω
T
x
+
b
l
o
g
p
1
−
p
=
ω
T
x
+
b
p = P(y=1|x)= \frac{e^{\omega^Tx+b}}{1+e^{\omega^Tx+b}} \\ 1-p = P(y=0|x)= \frac{1}{1+e^{\omega^Tx+b}} \\ log{\frac{p}{1-p}} = \omega^T x+b
p=P(y=1∣x)=1+eωTx+beωTx+b1−p=P(y=0∣x)=1+eωTx+b1log1−pp=ωTx+b
以上内容参考周志华的西瓜书《机器学习》和李航的《统计学习方法》