逻辑回归是分类算法,可以支持二分类和多分类得问题,但是为什么称为回归?而不是分类呢?个人认为,第一,逻辑回归中保留了回归模型(线性回归)的思想;第二,逻辑回归在经过非线性转换为概率,然后用概率对类别。其中第二种思想在很多分类学习器中都有体现,如:神经网络, GBDT G B D T .
1. 从线性回归导出逻辑回归
我们知道,线性回归就是以一个线性函数 Y^=θX¯ Y ^ = θ X ¯ 拟合真实标记 Y Y ,损失函数为均方误差:,最终根据最小二乘法得到拟合模型: Y=θ∗X¯ Y = θ ∗ X ¯ ;此时样本的标记 Y Y 是连续的,如果是离散的,我们强行使用线性回归会出现问题,因此我们需要一个能解决分类问题的模型。具体思想是:我们通过一个函数将线性回归的输出转换到样本所属类别概率上,最终通过拟合概率来得到模型,数学表示为:
一般来说,我们的 ϕ(X):R→[0,1] ϕ ( X ) : R → [ 0 , 1 ] ,但是我们使用的确实 sigmoid s i g m o i d 函数: ϕ(x)=11+e−x ϕ ( x ) = 1 1 + e − x ;而不使用 ϕ(x)=1+tanh(x)2 ϕ ( x ) = 1 + t a n h ( x ) 2 这是为什么呢(新浪面经)?在讲述玩逻辑回归后我们回就这个问题展开讨论.
2. 逻辑回归模型的二分类
2.1. 概率预测
为了简单起见,我们假设标记 Yi∈{0,1},i=1,…,n Y i ∈ { 0 , 1 } , i = 1 , … , n ,且在样本 Xi X i 给定下,类别标记 Yi Y i 独立同 Bernoulli B e r n o u l l i 分布,数学表述为:
且
因此,对于样本集 {(xi,yi)∣i=1,…,n} { ( x i , y i ) ∣ i = 1 , … , n } ,如第一节所述,
我们假设
yi=1
y
i
=
1
的条件概率为:
那么 yi=0 y i = 0 的条件概率为:
所以二分类问题 yi y i 的条件概率为:
统一形式,我们令 ϕ(θxi)=hθ(xi) ϕ ( θ x i ) = h θ ( x i ) ,得条件概率为:
2.2. 损失函数
上节介绍了一个样本 xi x i 类别标记为 yi y i 得条件概率为: P{yi∣xi}=hθ(xi)yi(1−hθ(xi))1−yi P { y i ∣ x i } = h θ ( x i ) y i ( 1 − h θ ( x i ) ) 1 − y i ,那么所有样本 X X 类别标记为的概率(似然函数):
我们将对数似然函数 L(θ) L ( θ ) 取负及得损失函数:
2.3. 参数更新
从概率角度来讲,我们希望最大化所有样本 X X 被判为的概率 P{Y∣X,θ} P { Y ∣ X , θ } ,也就是最大化对数似然函数 L(θ) L ( θ ) ,或者说最小化损失函数 J(θ) J ( θ ) :
常用的方法有牛顿法,坐标轴下降法,牛顿法等等;这里使用的方法是梯度下降法:
我们将
J(θ)
J
(
θ
)
对
θ
θ
求偏导:
其中, ∂hθ(x)∂θ=hθ(x)(1−hθ(x)). ∂ h θ ( x ) ∂ θ = h θ ( x ) ( 1 − h θ ( x ) ) .
得到参数 θ θ 的更新为:
也可以写成矩阵形式:
2.4. 正则化
回顾线性回归的正则化:为了防止过拟合,我们在损失函数上加上正则化,得到岭回归和
Lasso
L
a
s
s
o
回归.
* 岭回归:
J(θ)=12n∑ni=1(θTx¯i−yi)2+λ∑ni=1θ2i
J
(
θ
)
=
1
2
n
∑
i
=
1
n
(
θ
T
x
¯
i
−
y
i
)
2
+
λ
∑
i
=
1
n
θ
i
2
- Lasso回归:
J(θ)=12n∑ni=1(θTx¯i−yi)2+λ∑ni=1|θi| J ( θ ) = 1 2 n ∑ i = 1 n ( θ T x ¯ i − y i ) 2 + λ ∑ i = 1 n | θ i |
同理我们可以得到逻辑回归的正则化表示:
L1正则:
J(θ)=−∑i=1n(yiln(hθ(xi))+(1−yi)ln(1−hθ(xi)))+λ∑i=1n|θi| J ( θ ) = − ∑ i = 1 n ( y i ln ( h θ ( x i ) ) + ( 1 − y i ) ln ( 1 − h θ ( x i ) ) ) + λ ∑ i = 1 n | θ i |参数更新方法常用坐标轴下降法和最小角回归法.
L2正则:
J(θ)=−∑i=1n(yiln(hθ(xi))+(1−yi)ln(1−hθ(xi)))+λ∑i=1nθ2i J ( θ ) = − ∑ i = 1 n ( y i ln ( h θ ( x i ) ) + ( 1 − y i ) ln ( 1 − h θ ( x i ) ) ) + λ ∑ i = 1 n θ i 2参数更新方法和一般的逻辑回归类似.
3. 逻辑回归的多分类
3.1. 多分类的经典策略
在机器学习中处理多分类问题主要使用拆分方法,经典的拆分策略有三种:”一对一”(OvO),”一对其余”(OvR),”多对多”(MvM).
给定训练数据
(xi,yi) i=1,…,m, yi∈{C1,C2,…,CN}
(
x
i
,
y
i
)
i
=
1
,
…
,
m
,
y
i
∈
{
C
1
,
C
2
,
…
,
C
N
}
.
“一对一”(OvO)
(OvO)策略是将数据按类别俩俩配对进行训练,得到 N(N−1)/2 N ( N − 1 ) / 2 个学习器,然后将训练结果投票表决.
“一对其余”(OvR)
OvR策略是将从数据中选出一个类别数据作为正例,其他类别数据统称为负例进行训练,最终得到 N N 个学习器,如果一个样本在个学习器下的结果只有一个则样本类别已确定,否则找出找出置信度最大的结果作为样本类别.
“多对多”(MvM)
MvM策略是每次将若干样本作为正例,若干样本作为负例,且正,负例具有独特的设计不能随便选取,最常用的MvM技术:”纠错输出码”.
3.2. 逻辑回归多分类
对付逻辑回归多分类,我们可以训练 N−1 N − 1 个分类器,其中第 k k 个分类器用来输出的概率,回顾二分类问题,
类似有:
且
通过上述
N
N
个式子我们解得:
最终损失函数为:
容易看出,上述方法采用的是OvO的策略.
值得一提的是,我们也可以构造 N N 个学习器,这样输出就有个,可以通过 softmax s o f t m a x 函数转换得到 N N 个概率值,第个概率值就是 y y 为的概率:
损失函数类似第一种方法.
4. 逻辑回归激活函数选取
在逻辑回归中,我们使用的确实
sigmoid
s
i
g
m
o
i
d
函数:
ϕ(x)=11+e−x
ϕ
(
x
)
=
1
1
+
e
−
x
;而不使用
ϕ(x)=1+tanh(x)2
ϕ
(
x
)
=
1
+
t
a
n
h
(
x
)
2
这是为什么呢?其实是有依据的,只有当使用
sigmiod
s
i
g
m
i
o
d
函数做输出函数时逻辑回归模型才能算是一个广义线性模型(Generalized Linear Model).
在解释其原因之前我们先介绍两个概念.
A. 指数族分布
指数族分布满足下面公式:
其中 η η 为自然参数, T(y) T ( y ) 是充分统计量,通常为 T(y)=y T ( y ) = y , α(η) α ( η ) 为正则化项.
举个例子,我们常见的指数分布:
p(x)=λe−λx
p
(
x
)
=
λ
e
−
λ
x
显然是一个指数族分布,它对应着
b(λ)
b
(
λ
)
,
T(x)=x
T
(
x
)
=
x
,
α(λ)=0
α
(
λ
)
=
0
的情况.
B. 广义线性模型(GLM)
满足以下三个条件的模型称为GLM:
- 在 x,θ x , θ 下 y y 是一个参数为的指数族分布,或:
- 给定 x x ,我们的预测是的期望:
- 参数 η η 满足:
首先,我们可以看出,在二分类中,
Bernoulli
B
e
r
n
o
u
l
l
i
分布就是一个指数族分布.
二分类逻辑回归中,我们假设样本的类别标记服从
Bernoulli
B
e
r
n
o
u
l
l
i
分布,所以
我们令:
因此,条件概率可写成 P(y∣x,θ)=b(η)eηy−α(η) P ( y ∣ x , θ ) = b ( η ) e η y − α ( η ) ,这是一个指数族分布函数,同时我们也得出输出 ϕ(x)=11+e−η ϕ ( x ) = 1 1 + e − η (满足第一条).
其次,对于逻辑回归中 Bernoulli B e r n o u l l i 分布的期望:
最后我们令 η=θTx η = θ T x (满足第三条).
所以在转换函数为 ϕ(x)=11+e−θTx ϕ ( x ) = 1 1 + e − θ T x 下,逻辑回归模型是一个广义线性模型.
5.总结
逻辑回归模型是一个非常简单的模型,训练速度非常快,而且容易理解,一般在数据处理完毕之后第一时间使用的就是逻辑回归.,虽然使用起来没有支持向量机(SVM)那么占主流,但是解决普通的分类问题是足够了,训练速度也比起SVM要快不少。如果你要理解机器学习分类算法,那么第一个应该学习的分类算法个人觉得应该是逻辑回归。理解了逻辑回归,其他的分类算法再学习起来应该没有那么难了。