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

📄 expand.m

📁 IDARP 分類演算法..(使用Matlab開發)
💻 M
字号:
function [lbounds,ubounds]=Expand(PBags,lbs,ubs,relevant,tau,epsilon,step)
%Expand the current bounds lbs and ubs


if(sum(relevant)==0)
    error('no relevant features');
end

size1=size(PBags);
num_bags=size1(1);
size2=size(relevant);
dimension=size2(2);

%映射相关属性
temp_pbags=cell(num_bags,1);
for i=1:num_bags
    count=0;
    for j=1:dimension
        if(relevant(1,j)==1)
            count=count+1;
            temp_pbags{i,1}(:,count)=PBags{i,1}(:,j);
        end
    end
end
positives=[];
for i=1:num_bags
    positives=[positives;temp_pbags{i,1}];
end

size2=size(positives);
num_instances=size2(1);
for i=1:sum(relevant)
    sigma=((lbs(1,i)-ubs(1,i))/2)/norminv((1-tau)/2);
    cur_dimension=[];
    for j=1:num_instances
        if((positives(j,i)>=lbs(1,i))&(positives(j,i)<=ubs(1,i)))
            cur_dimension=[cur_dimension,positives(j,i)];
         end
      end
    size3=size(cur_dimension);
    coeff=1/size3(2);
    
%    cur_dimension=sort(positives(:,i)');     
%    coeff=1/num_instances;
    
    templb=lbs(1,i);
    tempprob=coeff*sum(normcdf(templb,cur_dimension,sigma));
    while(tempprob>epsilon/2)
        templb=templb-step;
        tempprob=coeff*sum(normcdf(templb,cur_dimension,sigma));
    end
    tempub=ubs(1,i);
    tempprob=coeff*sum(normcdf(tempub,cur_dimension,sigma));
    while(tempprob<=(1-epsilon/2))
        tempub=tempub+step;
        tempprob=coeff*sum(normcdf(tempub,cur_dimension,sigma));
    end
    lbounds(1,i)=templb;
    ubounds(1,i)=tempub;
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -