1 / 14
文档名称:

属性约简(matlab算法)有实例有讲解.doc

格式:doc   大小:147KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

属性约简(matlab算法)有实例有讲解.doc

上传人:2786321826 2020/11/23 文件大小:147 KB

下载得到文件列表

属性约简(matlab算法)有实例有讲解.doc

文档介绍

文档介绍:粗糙集 属性约简
题目:  SARS 诊断
注:这是我学粗糙集时老师给的作业
 
U
干咳
呼吸困难
 血液检测
高烧38度
 X射线
浓痰
血细胞多
寒战
肌肉酸痛
乏力
胸膜痛
头痛
非典
1
1
1
 1
1
0
0
0
0
1
1
0
1
1
2
0 
0
 0
0
0
0
0
0
0
0
0
0
0
3
1
0
 1
0
0
0
0
0
0
1
0
0
0
4
0 
0
 0
1
1
1
1
0
1
0
1
1
0
5
1 
0
 0
1
1
1
1
1
0
1
1
0
0
6
0
1
 0
1
1
1
1
1
1
0
0
1
0
7
1
0
 0
0
1
1
1
0
0
1
1
1
0
8
1
1
 1
1
0
0
0
0
1
1
0
1
1
9
1
0
 1
1
1
0
0
0
1
1
0
1
1
10
1 
1
 1
1
0
0
0
0
1
1
0
1
1
11
1 
0
 1
1
1
0
0
0
1
1
0
1
1
12
1 
0
 1
1
1
0
0
0
1
1
0
1
1
属性约简的顺序如下:求正域、生成未经处理的区分矩阵、对区分矩阵进行化简、求核、对已经处理过的区分矩阵进行属性约简。约简后的决策表有26行,所有12个属性都是正域中的属性,核为空
 
程序:
%
tic;
a=[ 1,1,1,1,0,0,0,0,1,1,0,1;
    0,0,0,0,0,0,0,0,0,0,0,0;
    1,0,1,0,0,0,0,0,0,1,0,0;
    0,0,0,1,1,1,1,0,1,0,1,1;
    1,0,0,1,1,1,1,1,0,1,1,0;
    0,1,0,1,1,1,1,1,1,0,0,1;
    1,0,0,0,1,1,1,0,0,1,1,1;
    1,1,1,1,0,0,0,0,1,1,0,1;
    1,0,1,1,1,0,0,0,1,1,0,1;
    1,1,1,1,0,0,0,0,1,1,0,1;
    1,0,1,1,1,0,0,0,1,1,0,1;
    1,0,1,1,1,0,0,0,1,1,0,1 ];
d=[1;0;0;0;0;0;0;1;1;1;1;1];
pos=posCD(a,d);
dismat=dismatrix(a,d,pos);
dism=disbe(dismat);
core=cor(dism);
[red,row]=redu(dism);
time=toc
%
% 生成未经处理的区分矩阵dismat
function dismat=dismatrix(a,d,pos)
[m,n]=size(a);
p=1;
index1=0;index2=0;index=0;
dis=-1*ones(m*(m-1)/2,n);
for i=1:m
    for j=i+1:m
        if (isxbelongtopos(i,pos)&~isxbelongtopos(j,pos))...
                |(~isxbelongtopos(i,pos)&isxbelongtopos(j,pos))...
                |(isxbelongtopos(i,pos)&isxbelongtopos(j,pos)&~isxybelongtoindD(i,j,d))
            index2=1;
        end
        if index2==0
            continue;
        end
        for k=1:n
            if a(i,k)~=a(j,k)
                dis(p,k)=1;
                index1=1;
            else dis(p,k)=0;
            end
        end
        if index1==1
            p=p+1;index=1;
        end