Logistic regression

From Knowledge Discovery

Jump to: navigation, search

This is a function for logistic reg Written By Tanmoy

function [w,y_est]=log_reg(clust,myY)

tmpX=clust; tmpY=myY;


[m,n]=size(tmpX); [a,y]=max(tmpY'); y=y'; X=[ones(m,1) tmpX]; n=n+1; w=rand(4,n); p=zeros(m,5); eta=0.0001;

p(:,1:4)=exp(X*w'); p(:,5)=ones(m,1); for i=1:m

 tmp=sum(p(i,:));
 p(i,:)=p(i,:)/tmp;

end

value=0; for i=1:m

 value=value+log(p(i,y(i)));

end

oldvalue=value-0.5*abs(value);

count=0;

while(count<10000 && value-oldvalue>0.0001*abs(value)) %edit as required

 count=count+1;
 value;
 tmp=max(max(abs(value-oldvalue)))/abs(value);
 oldvalue=value;
 
 for j=1:4
   for i=1:n
     w(j,i)=w(j,i)+eta*(X(:,i)'*((y==j)-p(:,j)));
   end
 end
 p(:,1:4)=exp(X*w');
 p(:,5)=ones(m,1);
 for i=1:m
   tmp=sum(p(i,:));
   p(i,:)=p(i,:)/tmp;
 end
 
 value=0;
 for i=1:m
   value=value+log(p(i,y(i)));
 end

end

value;

[a,y_est]=max(p'); y_est=y_est';

Personal tools