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

📄 scores.m

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