资源简介
以邻域粗糙集的属性重要度作为量度,从一个空集出发,前向贪心的选择重要度大的属性并入到约简集合,直到达到约简条件
代码片段和文件信息
function [select_feature]=fs_SD_Gread(sDatan)
%% fs_SD_Gread 函数返回基于标准差的贪心算法得到的属性约简
%% sData: 数据
%% n: 控制领域大小的参数
[rowcolumn]=size(sData.data);
aaaaa=0;
%% 得到邻域关系
neighborRelation=my_SD_getNeighborRelation(sDatan);
r=neighborRelation{column+1};
n=[];
x=0;
base=ones(row);
pos=[];
attrinu=column;
for j=attrinu:-1:1
sig=[];
%缩减决策属性的邻域关系和base矩阵
r(pos:)=[];
r(:pos)=[];
base(:pos)=[];
base(pos:)=[];
%当所有元素都剔除时,跳出
if isempty(base)
break;
end
%缩减邻域关系
for l=1:attrinu
a=neighborRelation{l};
a(pos:)=[];
a(:pos)=[];
neighborRelation{l}=a;
end
%poss 用来存放正域即下近似
poss=cell(1attrinu);
for l=1:attrinu
r2=neighborRelation{l};
r1=min(r2base);
rrr=size(r12);
importance=row-rrr;
po=zeros(rrr);
aaaaa=aaaaa+rrr;
for i=1:rrr
temp=min([r1(i:);r(i:)]);
incluse=sum(temp)/sum(r1(i:));
if incluse>=1
po(i)=i;
importance=importance+sum(temp)/length(find(temp~=0));
end
end
% 剔除po中的非零元素
po=po(po~=0);%速度较快,比 a(~any(a1))=[]快
poss{l}=po;
sig(l)=importance/row;
end
[x1n1]=max(sig);
pos=poss{n1};
x=[x;x1];
len=length(x);
if abs(x(len)-x(len-1))>0.001
base1=neighborRelation{n1};
base=min(basebase1);
n=[n;n1];
else
break
end
end
select_feature=n;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1770 2010-08-16 18:50 FS_NRS_GREAD\fs_SD_Gread.m
文件 881 2010-07-20 15:21 FS_NRS_GREAD\my_SD_getNeighborRelation.m
文件 21567 2010-08-16 17:13 FS_NRS_GREAD\wine.mat
目录 0 2010-08-20 22:33 FS_NRS_GREAD
----------- --------- ---------- ----- ----
24218 4
评论
共有 条评论