📄 biscores.asv
字号:
function wi=biscores(v,dataset_path,dataset);
%path(path,dataset_path)
f=dataset;
%b=f[:,1]%
[n,m]=size(f);
%v=1;
f1=v(1);
f2=v(2);
row=f(:,[f1,f2]);
Fn=zeros(n,1); %step1 :Set the training pairs from
for i=1:n
for j=1:n
Fn(i)=Fn(i)+Indfun(norm(row(i,:)-row(j,:)),0.2);
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);
% cov_row=cov(row)
% inv_cov_row=inv(cov_row);
for i=1:n %step3: caculate covarance matrix K
for j=1:n % and let var(i)=K(i,i)
% if det(cov_row)==0
K(i,j)=exp(-0.5*((row(i,:)-row(j,:))*(row(i,:)-row(j,:))'))/sqrt(2*pi);
% else
% K(i,j)=exp(-0.5*((row(i,:)-row(j,:))*inv_cov_row*(row(i,:)-row(j,:))'))/sqrt(2*pi*abs(det(cov_row)));
% end
end
end
var_f=[];
for i=1:n
var_f(i)=[0];
end
for i=1:n
var_f(i)=K(i,i);
end
M=5;
yx=zeros(n,1);
yxi=zeros(n,1);
for outer=1:20
if (outer-1)/5==0
for i=1:n
IG=0.5*erf((Fn(i)-yxi(i)+e)/sqrt(2*var_f(i)))-0.5*erf((Fn(i)-yxi(i)-e)/sqrt(2*var_f(i)));
temp=realpow(C,2)-realpow(w(i),2)-(w(i)*yxi(i)+var_f(i)*realpow(C,2)+IG)/(var_f(i)*G(i));
E(i,i)=-var_f(i)-(temp)^-1;
end
end;
%inv(K);
IN=inv(K+E);
for i=1:n
IN(i,i)^-1;
var_f(i)=abs(((IN(i,i))^-1)-E(i,i));
end
for i=1:n
%if (mod(i,M)==0 )
%update_var_f();
%end
yx(i)=sum(w.*K(:,i));
yxi(i)=yx(i)-var_f(i)*w(i);
F(i)=(C/2)*exp((C/2)*(2*yxi(i)-2*Fn(i))+2*e+C*var_f(i))*(1-erf((yxi(i)-Fn(i)+e+C*var_f(i))/sqrt(2*var_f(i))))-(C/2)*exp(-(C/2)*(2*yxi(i)+2*Fn(i))+2*e+C*var_f(i))*(-1+erf((yxi(i)-Fn(i)+e+C*var_f(i))/sqrt(2*var_f(i))));
G(i)=0.5*erf((Fn(i)-yxi(i)+e)/sqrt(2*var_f(i)))-0.5*erf((Fn(i)-yxi(i)-e)/sqrt(2*var_f(i)))+(1/2)*exp((C/2)*(2*yxi(i)-2*Fn(i))+2*e+C*var_f(i))*(1-erf((yxi(i)-Fn(i)+e+C*var_f(i))/sqrt(2*var_f(i))))+(0.5)*exp((C/2)*(-2*yxi(i)+2*Fn(i))+2*e+C*var_f(i))*(1-erf((yxi(i)-Fn(i)+e+C*var_f(i))/sqrt(2*var_f(i))));
tem=F(i)/G(i);
w(i)=w(i)+learn_rate*(tem-w(i));
end
end
wi=w/sum(w);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -