Logistic----先挖坑---日后概率学的好了再回来填

>> rand('state',0);randn('state',0);
>> n=90;c=3;y=ones(30,1)*[1:3];
>> y=y(:);
>> x=randn(30,3)+repmat(linspace(-3,3,3),30,1);
hh=2*1^2;t0=randn(n,c);
 for o=1:n*1000
i=ceil(rand*n);yi=y(i);ki=exp(-(x-x(i)).^2/hh);
ci=exp(ki'*t0);t=t0-0.1*(ki*ci)/(1+sum(ci));
t(:,yi)=t(:,yi)+0.1*ki;
if norm(t-t0)<0.000001,break,end
t0=t;
end
>> N=100;
>> X=linspace(-5,5,N)';
 for o=1:n*1000
i=ceil(rand*n);yi=y(i);ki=exp(-(x-x(i)).^2/hh);
ci=exp(ki'*t0);t=t0-0.1*(ki*ci)/(1+sum(ci));
t(:,yi)=t(:,yi)+0.1*ki;
if norm(t-t0)<0.000001,break,end
t0=t;
end
>> N=100;X=linspace(-5,5,N);
>> X=linspace(-5,5,N)';
axis([-5 5 -0.3 1.8]);
>> C=exp(K*t);C=C./repmat(sum(C,2),1,c);
>> plot(X,C(:,1),'b-');
>> plot(X,C(:,2),'r--');
>> plot(X,C(:,3),'g:');
>> plot(x(y==1),-0.1*ones(n/c,1),'bo');
>> plot(x(y==2),-0.1*ones(n/c,1),'rx');
>> plot(x(y==3),-0.1*ones(n/c,1),'gv');
>> legend('q(y=1|x)','q(y=2|x)','q(y=3|x)');

 

Logistic损失函数为:ln(1+exp(-m));

rand('state',0);randn('state',0);
>> n=90;c=3;y=ones(n/c,1)*[1:c];y=y(:);
>> x=randn(n/c,c)+repmat(linspace(-3,3,c),n/c,1);x=x(:);
>> hh=2*1^2;x2=x.^2;l=0.1;N=100;X=linspace(-5,5,N)';
>> k=exp(-(repmat(x2,1,n)+repmat(x2',n,1)-2*x*x')/hh);
>> K=exp(-(repmat(X.^2,1,n)+repmat(x2',N,1)-2*X*x')/hh);
>> for yy=1:c
yk=(y==yy);ky=k(:,yk);
ty=(ky'*ky+l*eye(sum(yk)))\(ky'*yk);
Kt(:,yy)=max(0,K(:,yk)*ty);
end
>> ph=Kt./repmat(sum(Kt,2),1,c);
>> figure(1);
>> clf;
>> hold on;
>> axis([-5 5 -0.3 1.8]);
>> plot(X,ph(:,1),'b-');
>> plot(X,ph(:,2),'r--');
>> plot(X,ph(:,3),'g:');
>> plot(x(y==1),-0.1*ones(n/c,1),'bo');
>> plot(x(y==2),-0.2*ones(n/c,1),'rx');
>> plot(x(y==3),-0.1*ones(n/c,1),'gv');
>> legend('p(y=1|x)','p(y=2|x)','p(y=3|x)');
figure(1);
clf;
hold on;
axis([-5 5 -0.3 1.8]);
plot(X,ph(:,1),'b-');
plot(X,ph(:,2),'r--');
plot(X,ph(:,3),'g:');
plot(x(y==1),-0.1*ones(n/c,1),'bo');
plot(x(y==2),-0.2*ones(n/c,1),'rx');
plot(x(y==3),-0.1*ones(n/c,1),'gv');
legend('p(y=1|x)','p(y=2|x)','p(y=3|x)');

 

猜你喜欢

转载自blog.csdn.net/qq_24059779/article/details/82901485