分类算法之logistic 回归模型

来源:互联网 发布:淘宝搞笑好评大全 编辑:程序博客网 时间:2024/05/05 10:44

logistic regression是统计学习中经典的分类算法,属于对数线性模型。

回归模型:

给定一个数据集合(x1,y1)(x2,y2)...(xn,yn),有监督学习构建模型,学习过程就是模型参数θ的学习过程。作为discrimination algorithm,对 P(Y|X;θ)建模,

针对二分类问题,我们选择logitic 分布来描述P(Y|X)的分布,g(x)=ex1+ex,,这样logistic回归模型服从下面的条件概率:

P(y=1|x)=eθTx1+eθTx

P(y=0|x)=1(P(y=1|x)=11+eθTx

在预测时,给定Input value x,分别计算P(y=1|x),P(y=0|x),x属于概率大的那个类别。

关于为什么选择logistic函数,我理解(参考斯坦福视频 Ng的说法):

1.logistic函数形式比较简单,处理起来也比较简单

2.生成模型可以得到判别模型(反过来不成立),生成模型首先对数据建模,假设模型服从F(x)分布,也就是数据可以有F(x)生成,那么F(x)是二项分布、γ分布、gaussian分布等,对应的判别模型都是logistic分布(神奇,不过这个过程还不是很了解,需要对generative model和discriminative model进一步了解),而判别模型是不考虑数据分布的,所以选择logistic分布大多数情况下都是对的。

模型参数估计:

定义模型后,需要基于DataSet学习模型参数,也就是θ,使得数据的概率最大,我们可以用极大似然估计法估计模型参数。

为了方便计算,定义:

p(y=1|x;θ)=π(x),p(y=0|x;θ)=1π(x)

则有:

p(y|x;θ)=π(x)y=1(1π(x))y=0

定义参数的似然函数 L(θ)=P(Y|X;θ)=Ni=1p(yi|xi;θ)

对数似然函数:

l(θ)=Ni=1lnp(yi|xi;θ)

=Ni=1ln(π(xi)yi(1π(xi))1yi)

=Ni=1(yi)lnπ(xi)+(1yi)ln(1π(xi))

目前是求 l(θ)的极大值。

采用的方法是梯度下降或者牛顿法。

之前对模型的推导不理解,也很好奇,所以尽可能的将推导过程写出来,检验一下。

dθjl(θ)

=Ni=1(yiπ(xi)1dθjπ(xi)(1yi)(1π(xi))1dθjπ(xi))

其中

dθjπ(xi)

=(1+eθTxi)2eθTxixji

=(1+eθTxi)1eθTxi1+eθTxixji

=(1π(xi))π(xi)xji

那么

dθjl(θ)

=Ni=1(yi(1π(xi))xji(1yi)π(xi)xji)

=Ni=1yiπ(xi)xji

基于梯度下降方法,有

θj=θj+αdθjl(θ)

=>θj=θj+αsumNi=1(yiπ(xi)xji

进行迭代,求解参数。

这种做法每迭代纠结一个参数,需要遍历一遍数据,效率低。

Ng提到做随机梯度下降,只需要遍历一遍数据,但是不一定是最优解

for i to N {

for j to M;

θj=θj+α(yiπ(xi)xji

}

可能在工程上或者分布式应用上,有其他做法,后续研究

多类别回归模型:

之前计算的都是基于二类的,现实中分类可能是多类别的,所以进行扩充

我们定义

πc(x)=p(y=c|x;θ)=eθTcx1+K1k=1eθTkx

K表示对应的类别个数,需要θ的参数个数为K-1,p(y=K|x)=1K1k=1P(y=k|x)求的

对应的对数似然函数,可以这样来描述:

l(θ)=Ni=1lnp(yi|xi;θ)

l(θ)=Ni=1lnπ1(xi)I(y=1)π2(xi)I(y=2).....πK1(xi)I(y=K1)(1π1(xi)π1(xi)...πK1(xi))I(y=K)

=Ni=1K1k=1I(y=k)lnπk(xi)+I(y=K)ln(1π1(xi)π1(xi)...πK1(xi))

=Ni=1K1k=1I(y=k)θTkx+I(y=K)ln(1π1(xi)π1(xi)...πK1(xi))

=Ni=1I(y=K)ln(1+K1kk=1eθTkkx))+K1k=1I(y=k)θTkxI(y=k)ln(1+K1kk=1eθTkkx)

=Ni=1ln(1+K1kk=1eθTkkx))Kk=1I(y=k)+K1k=1I(y=k)θTkx

=Ni=1ln(1+K1kk=1eθTkkx)+K1k=1I(y=k)θTkx

备注:

Kk=1I(y=k)=1

K表示类别的总个数,M表示特征的总个数,也是θM×(K1)向量

l(θ)极大似然估计,可以求出参数,注意,针对θjk求导,表示第k个参数的第j个分量。

采用极大似然估计以及梯度下降等方法,可以求出θ ,进行预测


转载地址:http://www.hxxiaopei.com/?p=117


原创粉丝点击