今天就逻辑回归和回归问题之间的关系做个梳理,下次再遇到谁扯逻辑回归如何如何做回归,我直接丢。。。
仅个人拙见。
文章目录
1 何为回归?何为分类?
回归和分类从宏观意义上见就是一类问题,给定输入x,通过模型F,输出结果y。二者的区别在于输出结果y的不同。这就是最最根本的区别,你输出的结果就直接反映了问题的本质。
- 分 类 \color{red}{分类} 分类:当输出y为离散值时,就是分类问题。比如(1,-1),(1,0)这样代表两种状态的表达。明天天气晴天,设状态为1,阴天状态就是0。
- 回 归 \color{red}{回归} 回归:当输出y为连续值时,就是回归问题。比如预测未来10天的股票价格预测。
2 回归问题在拟合什么?分类问题又在拟合什么?
2.1 回归的拟合问题
对于一个回归问题,简单的可以表示为:
y
=
w
x
+
b
y = wx+b
y=wx+b
x是一组符合某种分布的特征
x
=
(
x
1
,
x
2
,
.
.
,
x
n
)
x=(x_1,x_2,..,x_n)
x=(x1,x2,..,xn),回归就是为了拟合出这个函数,使得y值可以经过符合统一分布下的其他x值对应的点。也就是说,回归问题拟合的是一组数据特征的分布。
2.2 分类的拟合问题
一个分类可以简单的表示为:
P
(
y
=
1
∣
x
;
θ
T
)
P(y=1|x;\theta^T)
P(y=1∣x;θT)
分类就是在拟合一个概率值,使预测类别不断地逼近真实标签的概率。
3 逻辑回归与回归的关系
逻辑回归(Logistic Regression,LR)和回归之间的关系,大概就是名字中间有了一个回归。为何LR叫做“回归”呢,大概还是要从该算法诞生之初说起。
1956年,统计学家DavidCox在他的论文《The regression analysis of binary sequences》《二元序列中的回归分析》提出了逻辑回归算法。因为上个世纪中叶的时候,回归和分类的定义与今天有所不同,所以分类算法逻辑回归的“回归”两字就这样沿袭下来了。
对于一个回归问题:
y
=
θ
T
x
y =\theta^Tx
y=θTx
将其放在一个Logistic分布函数中,
L
o
g
i
s
t
i
c
(
x
)
=
1
1
+
e
−
(
x
−
u
)
/
r
Logistic(x) = \frac{1}{1+e^{-(x-u)/r}}
Logistic(x)=1+e−(x−u)/r1
得到:
g
(
X
)
=
1
1
+
e
−
θ
T
x
g(X) = \frac{1}{1+e^-{\theta^Tx}}
g(X)=1+e−θTx1
可以进行变形为:
l
n
g
(
X
)
1
−
g
(
X
)
=
θ
T
x
ln\frac{g(X)}{1-g(X)}=\theta^Tx
ln1−g(X)g(X)=θTx
这样一看,如果把一个事件的几率(oods)定义为:事件发生概率
g
(
X
)
=
P
(
y
=
1
∣
x
)
g(X) = P(y=1|x)
g(X)=P(y=1∣x)和不发生概率的比值
o
o
d
s
=
g
(
X
)
1
−
g
(
X
)
oods = \frac{g(X)}{1-g(X)}
oods=1−g(X)g(X)
那么LR就可以看作是:对于 y = 1 ∣ x y = 1|x y=1∣x 这个事件的对数几率的线性回归。于是逻辑回归的回归二字就延续下来了。
4 逻辑回归为啥是分类算法?
接着上面说,如果是对事件 y = 1 ∣ x y=1|x y=1∣x而言,逻辑回归是一个对数几率的回归问题。但是,但是,但是,实际上,y才是因变量,而不是p/1+p。而在逻辑回归中的y是离散值(y=1,y=0)。显然不是连续的,试问离散值的y如何变成回归问题的连续值。
5 逻辑回归如何用于分类?
下面简单的介绍下LR模型原理
5.1 Logistic 分布函数
顾名思义,逻辑回归重点还是在于Logistic。正是由于Logistic分布函数的存在,使得线性回归走向了分类问题。Logistic分布如下:
L
o
g
i
s
t
i
c
(
x
)
=
1
1
+
e
−
(
x
−
u
)
/
r
Logistic(x) = \frac{1}{1+e^{-(x-u)/r}}
Logistic(x)=1+e−(x−u)/r1
其中μ是位置参数,γ是形状参数。
从Logistic的定义式可以看出logistic分布是由其位置和尺度参数定义的连续分布。Logistic 分布的形状与正态分布的形状相似,但是 Logistic 分布的尾部更长,所以我们可以使用 Logistic 分布来建模比正态分布具有更长尾部和更高波峰的数据分布。
另外,我们常用到的 Sigmoid 函数就是μ = 0,γ = 1的特殊形式。 除此之外,Logistic 的分布函数的值域是(0, 1),这正好可以用来表示概率的大小。
5.2 LR模型
对于一个二分类问题,设:
P
(
Y
=
1
∣
x
)
=
p
(
x
)
=
1
1
+
e
−
θ
T
x
P
(
Y
=
0
∣
x
)
=
1
−
p
(
x
)
=
1
−
1
1
+
e
−
θ
T
x
\begin{aligned} &P(Y=1|x)=p(x)= \frac{1}{1+e^-{\theta^Tx}}\\ &P(Y=0|x)=1-p(x)=1- \frac{1}{1+e^-{\theta^Tx}} \end{aligned}
P(Y=1∣x)=p(x)=1+e−θTx1P(Y=0∣x)=1−p(x)=1−1+e−θTx1
构造似然函数:
L
(
w
)
=
∏
[
p
(
x
i
)
]
y
i
[
1
−
p
(
x
i
)
]
1
−
y
i
L(w)=\prod\left[p\left(x_{i}\right)\right]^{y_{i}}\left[1-p\left(x_{i}\right)\right]^{1-y_{i}}
L(w)=∏[p(xi)]yi[1−p(xi)]1−yi
为了更方便求解,我们对等式两边同取对数,写成对数似然函数:
L
(
w
)
=
∑
[
y
i
ln
p
(
x
i
)
+
(
1
−
y
i
)
ln
(
1
−
p
(
x
i
)
)
]
=
∑
[
y
i
ln
p
(
x
i
)
1
−
p
(
x
i
)
+
ln
(
1
−
p
(
x
i
)
)
]
=
∑
[
y
i
(
θ
⋅
x
i
)
−
ln
(
1
+
e
θ
⋅
x
i
)
]
\begin{aligned} L(w) &=\sum\left[y_{i} \ln p\left(x_{i}\right)+\left(1-y_{i}\right) \ln \left(1-p\left(x_{i}\right)\right)\right] \\ &=\sum\left[y_{i} \ln \frac{p\left(x_{i}\right)}{1-p\left(x_{i}\right)}+\ln \left(1-p\left(x_{i}\right)\right)\right] \\ &=\sum\left[y_{i}\left(\theta \cdot x_{i}\right)-\ln \left(1+e^{\theta \cdot x_{i}}\right)\right] \end{aligned}
L(w)=∑[yilnp(xi)+(1−yi)ln(1−p(xi))]=∑[yiln1−p(xi)p(xi)+ln(1−p(xi))]=∑[yi(θ⋅xi)−ln(1+eθ⋅xi)]
在机器学习中我们有损失函数的概念,其衡量的是模型预测错误的程度。如果取整个数据集上的平 均对数似然损失,我们可以得到:
J
(
w
)
=
−
1
N
ln
L
(
w
)
J(w)=-\frac{1}{N} \ln L(w)
J(w)=−N1lnL(w)
即在逻辑回归模型中,我们最大化似然函数和最小化损失函数实际上是等价的。
5.3 模型求解
LR的损失函数完整表达为:
J
(
w
)
=
−
1
n
(
∑
i
=
1
n
(
y
i
ln
p
(
x
i
)
+
(
1
−
y
i
)
ln
(
1
−
p
(
x
i
)
)
)
J(w)=-\frac{1}{n}\left(\sum_{i=1}^{n}\left(y_{i} \ln p\left(x_{i}\right)+\left(1-y_{i}\right) \ln \left(1-p\left(x_{i}\right)\right)\right)\right.
J(w)=−n1(i=1∑n(yilnp(xi)+(1−yi)ln(1−p(xi)))
1.梯度下降法
通过
J
(
w
)
J(w)
J(w) 对
w
w
w 的一阶导数来找下降方向,并且以迭代的方式来更新参数,更新方式为
g
i
=
∂
J
(
w
)
∂
w
i
=
(
p
(
x
i
)
−
y
i
)
x
i
w
i
k
+
1
=
w
i
k
−
α
g
i
\begin{aligned}g_{i}=\frac{\partial J(w)}{\partial w_{i}} &=\left(p\left(x_{i}\right)-y_{i}\right) x_{i} \\w_{i}^{k+1} &=w_{i}^{k}-\alpha g_{i}\end{aligned}
gi=∂wi∂J(w)wik+1=(p(xi)−yi)xi=wik−αgi其中
k
\mathrm{k}
k 为迭代次数。每次更新参数后,可以通过比较
∥
J
(
w
k
+
1
)
−
J
(
w
k
)
∥
\left\|J\left(w^{k+1}\right)-J\left(w^{k}\right)\right\|
∥∥J(wk+1)−J(wk)∥∥ 小于阈值或者到达 最大迭代次数来停止迭代.
2.牛顿法
牛顿法基本思路是,在现有极小点估计值的附近对
f
(
x
)
f(x)
f(x) 做二阶泰勒展开,进而找到极小点的下 一个估计值。假设
w
k
w^{k}
wk 为当前的极小值估计值,那么有:
φ
(
w
)
=
J
(
w
k
)
+
J
′
(
w
k
)
(
w
−
w
k
)
+
1
2
J
′
′
(
w
k
)
(
w
−
w
k
)
2
\varphi(w)=J\left(w^{k}\right)+J^{\prime}\left(w^{k}\right)\left(w-w^{k}\right)+\frac{1}{2} J^{\prime \prime}\left(w^{k}\right)\left(w-w^{k}\right)^{2}
φ(w)=J(wk)+J′(wk)(w−wk)+21J′′(wk)(w−wk)2然后令
φ
′
(
w
)
=
0
\varphi^{\prime}(w)=0
φ′(w)=0 ,得到了
w
k
+
1
=
w
k
−
J
′
(
w
k
)
J
′
′
(
w
k
)
w^{k+1}=w^{k}-\frac{J^{\prime}\left(w^{k}\right)}{J^{\prime \prime}\left(w^{k}\right)}
wk+1=wk−J′′(wk)J′(wk) 。因此有迭代更新式:
w
k
+
1
=
w
k
−
J
′
(
w
k
)
J
′
′
(
w
k
)
=
w
k
−
H
k
−
1
⋅
g
k
w^{k+1}=w^{k}-\frac{J^{\prime}\left(w^{k}\right)}{J^{\prime \prime}\left(w^{k}\right)}=w^{k}-H_{k}^{-1} \cdot g_{k}
wk+1=wk−J′′(wk)J′(wk)=wk−Hk−1⋅gk其中
H
k
−
1
H_{k}^{-1}
Hk−1 为海森矩阵:
H
m
n
=
∂
2
J
(
w
)
∂
w
m
∂
w
n
=
h
w
(
x
(
i
)
)
(
1
−
p
w
(
x
(
i
)
)
)
x
m
(
i
)
x
n
(
i
)
H_{m n}=\frac{\partial^{2} J(w)}{\partial w_{m} \partial w_{n}}=h_{w}\left(x^{(i)}\right)\left(1-p_{w}\left(x^{(i)}\right)\right) x_{m}^{(i)} x_{n}^{(i)}
Hmn=∂wm∂wn∂2J(w)=hw(x(i))(1−pw(x(i)))xm(i)xn(i)
此外,这个方法需要目标函数是二阶连续可微的,本文中的
J
(
w
)
J(\mathrm{w})
J(w) 是符合要求的。
6 逻辑回归和线性回归的比较
- 逻辑回归本质上就是在线性回归的基础上,加了Sigmoid函数进行非线性映射,使其成为一个分类模型。
- 本质上说,二者都是一个广义线性模型。
其中,由于sigmoid函数的作用:
- 线性回归是在实数域范围内进行预测,而分类范围则需要在 [0,1],逻辑回归减少了预测范围;
- 线性回归在实数域上敏感度一致,而逻辑回归在 0 附近敏感,在远离 0 点位置不敏感,这个的好处就是模型更加关注分类边界,可以增加模型的鲁棒性