Logistic Regression分类器,这个讲解的比较清晰

http://www.cnblogs.com/guyj/p/3800519.html

这个讲解的比较清晰


先看下面,导数推导过程可以参考http://blog.csdn.net/zzzblog/article/details/37598941



1. 两类Logistic回归

Logistic回归是一种非常高效的分类器。它不仅可以预测样本的类别,还可以计算出分类的概率信息。

不妨设有 n n个训练样本 {x1,...,xn} {x1,...,xn} xi xi d d维向量,其类别标签是 {y1,...,yn} {y1,...,yn}。对于一个 c c类问题, yi{1,2,...,c} yi∈{1,2,...,c}。Logistic回归学习这样一个函数

f(x)=g(θTx)=11+eθTx(1) (1)f(x)=g(θTx)=11+e−θTx

其中,
g(z)=11+ez(2) (2)g(z)=11+e−z

被称为Logistic函数或者Sigmoid函数。


x=[x(1),...,x(d)]T x=[x(1),...,x(d)]T。实际上, θTx θTx这儿应该写成 θ0+θTx θ0+θTx θ θ d d维向量),要有个常数项。但是为了方便,我们设 x(0)=1 x(0)=1,所以 θ0+θTx θ0+θTx可以直接写作 θTx θTx,而此处的 θ θ d+1 d+1维向量,即 θTx=dj=0θjx(j) θTx=∑j=0dθjx(j)

可以看出来,当 z z无穷大时, g(z) g(z)趋于1;当 z z无穷小时, g(z) g(z)趋于0;当 z=0 z=0时, g(z)=0.5 g(z)=0.5。  g(z) g(z)的值域是 [0,1] [0,1],所以 f(x) f(x)的值域也是 [0,1] [0,1]

首先我们考虑 2 2类问题,设

P(y=1|x,θ)=f(x)(3) (3)P(y=1|x,θ)=f(x)

即对于给定的样本 x x,其属于类别 1 1的概率是 f(x) f(x)。则属于类别 0 0的概率是
P(y=0|x,θ)=1f(x)(4) (4)P(y=0|x,θ)=1−f(x)

上述概率也可以写作

P(y|x,θ)=f(x)y(1f(x))1y(5) (5)P(y|x,θ)=f(x)y(1−f(x))1−y


Logistic回归具有如下的特点。一个事件发生的机率(odds)定义为事件发生的概率与不发生的概率的比值。设 p=P(y=1|x,θ) p=P(y=1|x,θ),那么事件的机率是 p1p p1−p。其对数函数是

logp1p=logP(y=1|x,θ)1P(y=1|x,θ)=θx(6) (6)logp1−p=logP(y=1|x,θ)1−P(y=1|x,θ)=θx

可以看出,输出类别 1 1的对数机率是输入 x x的线性函数。

此外,后验概率也可以写作如下形式:

P(y=1|x,θ)=eθTx1+eθTxP(y=0|x,θ)=11+eθTx(7) (7)P(y=1|x,θ)=eθTx1+eθTxP(y=0|x,θ)=11+eθTx

(这与下文将到的多类形式一致)

学习or训练的过程就是通过训练数据,来求解出最优的参数 θ θ。而预测的方法是计算后验概率 P(y|x,θ) P(y|x,θ),如果大于 0.5 0.5,则预测为类别 1 1;否则为类别 0 0

以下使用极大似然估计方法来求解参数。参数 θ θ的似然函数是:

L(θ)=i=1nP(yi|xi,θ)=i=1nf(xi)yi(1f(xi))1yi(8) (8)L(θ)=∏i=1nP(yi|xi,θ)=∏i=1nf(xi)yi(1−f(xi))1−yi

最大化似然函数往往比较困难,可以通过最大化对数似然函数来求解。 θ θ的对数似然函数是:

(θ)=logL(θ)=logi=1nf(xi)yi(1f(xi))1yi=i=1nlogf(xi)yi(1f(xi))1yi=i=1nyilogf(xi)+(1yi)log(1f(xi))(9) (9)ℓ(θ)=log⁡L(θ)=log⁡∏i=1nf(xi)yi(1−f(xi))1−yi=∑i=1nlog⁡f(xi)yi(1−f(xi))1−yi=∑i=1nyilog⁡f(xi)+(1−yi)log⁡(1−f(xi))

实际上,代价函数的形式是:

J(θ)=1ni=1nyilogf(xi)+(1yi)log(1f(xi))(10) (10)J(θ)=−1n∑i=1nyilog⁡f(xi)+(1−yi)log⁡(1−f(xi))

所以最小化代价函数就等价于最大化似然估计。


可以通过梯度下降法来求解 l(θ) l(θ)的极大值。即

θ:=θ+αθ(θ)(11) (11)θ:=θ+α∇θℓ(θ)

θj(θ)=θji=1nyilogg(θTxi)+(1yi)log(1g(θTxi))=i=1n(yi1g(θTxi)(1yi)11g(θTxi))θjg(θTxi)=i=1n(yi1g(θTxi)(1yi)11g(θTxi))g(θTxi)(1g(θTxi))θjθTxi=i=1n(yi(1g(θTxi))(1yi)g(θTxi))x(j)i=i=1n(yif(xi))x(j)i(12) (12)∂∂θjℓ(θ)=∂∂θj∑i=1nyilog⁡g(θTxi)+(1−yi)log⁡(1−g(θTxi))=∑i=1n(yi1g(θTxi)−(1−yi)11−g(θTxi))∂∂θjg(θTxi)=∑i=1n(yi1g(θTxi)−(1−yi)11−g(θTxi))g(θTxi)(1−g(θTxi))∂∂θjθTxi=∑i=1n(yi(1−g(θTxi))−(1−yi)g(θTxi))xi(j)=∑i=1n(yi−f(xi))xi(j)

x(j)i xi(j)是第 i i个样本的第 j j个特征。

所以,对于参数 θ θ向量中的任一元素 θj θj,迭代方式如下:

θj:=θj+αi=1n(yif(xi))x(j)i(13) (13)θj:=θj+α∑i=1n(yi−f(xi))xi(j)

如此,便可将全部参数求解出来。

此外,Logistic回归的求解也可以采用Newton迭代法等。


2. 正则化
在机器学习中,正则化是非常常用的方法。它用来约束模型的参数,使得求解出来的参数不会太大(模型不能过于复杂),以防止过拟合。

Logistic回归经常加入 1 ℓ1正则或者 2 ℓ2正则。参数求解的问题转变为:

argmaxθ(θ)αθ2(14) (14)arg⁡maxθℓ(θ)−α∥θ∥2


3. 多类情况

%可以换一种角度来理解Logistic回归。一个事件发生与不发生的比值被称为机率(odds)。假设发生的概率是 p p,那么发生的几率是 p/(1p) p/(1−p)。几率越大,发生的可能性越大。


面向多类分类问题的Logistic回归,也叫softmax regression。假设是一个 c c类问题,则类别标签 yi{1,...,c} yi∈{1,...,c}。 使用one-vs-all策略可以将两类分类器扩展为多类分类器,即将选取任意一类,再将其它所有类看成是一类,构建一个两类分类器,这样一共需要 c c个分类器。

定义

P(y=1|x)P(y=2|x)P(y=c|x)=eθT1xck=1eθTkx=eθT2xck=1eθTkx...=eθTcxck=1eθTkx(15) (15)P(y=1|x)=eθ1Tx∑k=1ceθkTxP(y=2|x)=eθ2Tx∑k=1ceθkTx...P(y=c|x)=eθcTx∑k=1ceθkTx

该模型有这样一个性质,对于所有参数 θi θi,加上一个向量 v v,后验概率的值不变。即

e(θ1+v)Txck=1e(θk+v)Tx=eθT1x+vTxck=1eθTkx+vTx=eθT1xevTxck=1eθTkxevTx=eθT1xck=1eθTkx(16) (16)e(θ1+v)Tx∑k=1ce(θk+v)Tx=eθ1Tx+vTx∑k=1ceθkTx+vTx=eθ1TxevTx∑k=1ceθkTxevTx=eθ1Tx∑k=1ceθkTx

我们设 v=θc v=θc, 则新的参数为

θ1=θ1θc...θc1=θc1θcθc=0(17) (17)θ1=θ1−θc...θc−1=θc−1−θcθc=0

则多类Logistic回归模型可写作

P(y=1|x)P(y=c1|x)P(y=c|x)=eθT1x1+c1k=1eθTkx...=eθTc1x1+c1k=1eθTkx=11+c1k=1eθTkx(18) (18)P(y=1|x)=eθ1Tx1+∑k=1c−1eθkTx...P(y=c−1|x)=eθc−1Tx1+∑k=1c−1eθkTxP(y=c|x)=11+∑k=1c−1eθkTx


加入正则项后的代价函数可以表述为

J(θ)=1m(i=1nk=1c1{yi=k}logθkxicl=1θTlxi)(19) (19)J(θ)=−1m(∑i=1n∑k=1c1{yi=k}logθkxi∑l=1cθlTxi)

其中, 1{yi=k} 1{yi=k}是指示函数,若 yi=k yi=k为真,则等于 1 1,否则等于 0 0

对于参数的求解,与两类问题的求解方法一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值