您的当前位置:首页正文

逻辑斯蒂回归模型

2023-10-26 来源:九壹网
逻辑斯蒂回归模型(logistic regression model)------分类模型

1、 二项逻辑斯蒂回归模型

P(Y1x)exp(wxb)1exp(wxb)

11exp(wxb)

P(Y0x)nnxR是输入,Y{1,0}是输出,wR和bR是参数 其中

对于给定的输入x,按照上两式求出P(Y0x)、P(Y1x),将实例x分到概率较大的那一类

为了方便我们将权值向量w和输入x加以扩充

令x(x1,x2,,xn,1)T,w(w1,w2,w3,,wn,b)Texp(wx)exp(wx)这样P(Y1x),P(Y0x)1exp(wx)1exp(wx)

对于模型的参数w的估计,采用极大似然估计法

P(Y1x)(x)P(Y0x)1(x),给定训练集T={(x1,y1)(x2,y2)……(xl,yl)}

似然函数为

1y(x)1(x)iii1Lyii

对数似然函数为

f(w)[yilogi1LL(xi)log(1(xi)]1(xi)

[yi(wxi)log(1exp(wxi)]i1对f(w)求极大值,得到w的估计值

以对数似然函数为目标函数的最优化问题是一个无约束最优化问题,通常采用最速下降法、拟牛顿法

最速下降法程序

基于Armijo 非精确线搜索的最速下降法Matlab 程序

function [x,val,k]=grad(fun,gfun,x0)

%功能: 用最速下降法求解无约束问题: min f(x)

%输入: x0是初始点, fun, gfun分别是目标函数和梯度

%输出: x, val分别是近似最优点和最优值, k是迭代次数.

maxk=5000; %最大迭代次数

rho=0.5;sigma=0.4;

k=0; epsilon=1e-5;

while(kg=feval(gfun,x0); %计算梯度

d=-g; %计算搜索方向

if(norm(d)m=0; mk=0;

while(m<20) %Armijo搜索

if(feval(fun,x0+rho^m*d)end

m=m+1;

*d)

end

x0=x0+rho^mk*d;

k=k+1;

end

x=x0;

val=feval(fun,x0);

BFGS 算法程序

基于Armijo 搜索的BFGS 算法的Matlab 程序

function [x,val,k]=bfgs(fun,gfun,x0,varargin)

%功能: 用BFGS算法求解无约束问题: min f(x)

%输入: x0是初始点, fun, gfun分别是目标函数及其梯度;

% varargin是输入的可变参数变量, 简单调用bfgs时可以忽略它,

% 但若其它程序循环调用该程序时将发挥重要的作用

%输出: x, val分别是近似最优点和最优值, k是迭代次数.

maxk=500; %给出最大迭代次数

rho=0.55;sigma=0.4; epsilon=1e-5;

k=0; n=length(x0);

Bk=eye(n); %Bk=feval(’Hess’,x0);

while(kgk=feval(gfun,x0,varargin–:˝); %计算梯度

if(norm(gk).epsilon), break; end %检验终止准则

dk=-Bk“gk; %解方程组, 计算搜索方向

m=0; mk=0;

while(m.20) % 用Armijo搜索求步长

newf=feval(fun,x0+rho^m*dk,varargin–:˝);

oldf=feval(fun,x0,varargin–:˝);

if(newf.oldf+sigma*rho^m*gk’*dk)

mk=m; break;

end

m=m+1;

end

%BFGS校正

x=x0+rho^mk*dk;

sk=x-x0; yk=feval(gfun,x,varargin–:˝)-gk;

if(yk’*sk.0)

Bk=Bk-(Bk*sk*sk’*Bk)/(sk’*Bk*sk)+(yk*yk’end

k=k+1; x0=x;

end

)/(yk’*sk);

val=feval(fun,x0,varargin–:˝);

因篇幅问题不能全部显示,请点此查看更多更全内容