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