Logistic regression
From Knowledge Discovery
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';
