⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 biscores.asv

📁 利用支持向量回归进行概率密度估计
💻 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 + -