📄 scores.m
字号:
function wi=scores(v,dataset_path,dataset);
path(path,dataset_path);
f=dataset;
%b=f[:,1]%
[n,m]=size(f);
row=f(:,v);
Fn=zeros(n,1); %step1 :Set the training pairs from
premnmx(row); % the training samples
%premnmx(row)
row
for i=1:n
for j=1:n
Fn(i)=Fn(i)+Indfun((row(i)-row(j)),0.1);
end
end
Fn=Fn/n;
learn_rate=1/(sqrt(n)); %step2: Set the learning rate and
o=ones(n); % randomly set w(i)
w=o(:,1)/n;
C=0.1;
e=0.1;
F=zeros(n,1);
G=ones(n,1);
E=eye(n);
std_v=std(row);
% cov_f=cov(f);
% inv_cov_f=inv(cov_f);
for i=1:n %step3: caculate covarance matrix K
for j=1:n % and let var(i)=K(i,i)
K(i,j)=exp(-0.5*((row(i)-row(j))*(row(i)-row(j)))')/sqrt(2*pi);
end
end
var=[];
for i=1:n
var=[0];
end
for i=1:n
var(i)=K(i,i);
end
M=5;
yx=zeros(n,1);
yxi=zeros(n,1);
for outer=1:20
if (outer-1)/M==0
for i=1:n
IG=0.5*erf((Fn(i)-yxi(i)+e)/sqrt(2*var(i)))-0.5*erf((Fn(i)-yxi(i)-e)/sqrt(2*var(i)));
temp=realpow(C,2)-realpow(w(i),2)-(w(i)*yxi(i)+var(i)*realpow(C,2)+IG)/(var(i)*G(i));
E(i,i)=-var(i)-(temp)^-1;
end
end
%inv(K);
IN=inv(K+E);
for i=1:n
IN(i,i)^-1;
var(i)=abs(((IN(i,i))^-1)-E(i,i));
end
for i=1:n
%if (mod(i,M)==0 )
%update_var();
%end
yx(i)=sum(w.*K(:,i));
yxi(i)=yx(i)-var(i)*w(i);
F(i)=(C/2)*exp((C/2)*(2*yxi(i)-2*Fn(i))+2*e+C*var(i))*(1-erf((yxi(i)-Fn(i)+e+C*var(i))/sqrt(2*var(i))))-(C/2)*exp(-(C/2)*(2*yxi(i)+2*Fn(i))+2*e+C*var(i))*(-1+erf((yxi(i)-Fn(i)+e+C*var(i))/sqrt(2*var(i))));
G(i)=0.5*erf((Fn(i)-yxi(i)+e)/sqrt(2*var(i)))-0.5*erf((Fn(i)-yxi(i)-e)/sqrt(2*var(i)))+(1/2)*exp((C/2)*(2*yxi(i)-2*Fn(i))+2*e+C*var(i))*(1-erf((yxi(i)-Fn(i)+e+C*var(i))/sqrt(2*var(i))))+(0.5)*exp((C/2)*(-2*yxi(i)+2*Fn(i))+2*e+C*var(i))*(1-erf((yxi(i)-Fn(i)+e+C*var(i))/sqrt(2*var(i))));
tem=F(i)/G(i);
w(i)=w(i)+learn_rate*(tem-w(i));
end
end
Fn();
wi=w/sum(w);
%adline(0.5);
%csvwrite('t.txt',f)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -