粗糙集属性约简matlab程序

粗糙集属性约简matlab程序
粗糙集属性约简matlab程序

粗糙集-属性约简-m a t l a b程序

Data2为条件属性,decision2为决策属性

%%%my_test函数实现

clc;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取信息系统文件

file=textread('data2.txt','%s','delimiter','\n','whitespace','');%读取文件信息,每一行为一个胞元

[m,n]=size(file);%胞元的大小

fori=1:m

words=strread(file{i},'%s','delimiter','');%读取每个胞元中字符,即分解胞元为新的胞元

words=words';%转置

X{i}=words;

end

X=X'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

[B,num,AT]=my_reduct(X);%信息系统的约简

ind_AT=ind(X);%信息系统的不可等价关系%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%显示约简信息系统

disp('约简后的条件系统为:');

[m,n]=size(B);

fori=1:m

disp(B{i});

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取决策系统文件

file=textread('decision2.txt','%s','delimiter','\n','whitespace','');

[m,n]=size(file);

fori=1:m

words=strread(file{i},'%s','delimiter','');

words=words';

D{i}=words;

end

D=D'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%决策系统的正域约简

X_D=X;

[l,k]=size(X_D{1});

pos_d=pos(X_D,D);%正域

fori=1:m%%%%%%%%%%%%%%正域有问题%%%%%%%%%%%%%%%%%%%%%%%%%%%

if(~ismember(num(i),pos_d))

B{i}='';%若约简后的信息系统B{i}不在正域中则删除该行

end%因为相同的条件得到的决策不一样,

end

%将在正域规则下约简过的信息系统B连接决策系统D

[m,n]=size(B);

fori=1:m

if(~isequal(B{i},''))

B{i}{1,k+1}=D{i}{1};

end

end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%显示约简决策系统

disp('约简后的决策系统为:');

[m,n]=size(B);

fori=1:m

disp(B{i});

end

--------------------------------------------------------------------------------

%%%%%my_reduct函数实现

function[C,num,reduct_attr]=my_reduct(X)

%%%%%y为约简后的cell数组,reduct_attr为可约去的属性

%X为行向量(元素为胞元)

clc;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%约简

[m,n]=size(X);

[p,k]=size(X{1});

ind_AT=ind(X);%寻找不可等价关系

reduct_attr=[];%可约去的的属性

num=zeros(m,1);%约简后的信息对应的个体

fori=1:k

B=delete_AT(X,i);

if(isequal(ind_AT,ind(B)))%若IND(AT-{a}=IND(AT)

reduct_attr=union(reduct_attr,i);%则寻找到可约去的属性

X=B;

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%剔除重复的行

k=1;

fori=1:m

if(~isequal(ind_AT{i},[]))

C_i=ind_AT{i,1}(1);

num(k)=i;

C{k,1}=X{C_i};%返回约简后的信息系统

k=k+1;

end

end

--------------------------------------------------------------------------------

%%%%%ind函数实现

functionyy=ind(X)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%寻找不可分辨关系[m,n]=size(X);

k=1;

ind_AT=cell(m,1);

fori=1:m

forj=(i+1):m%潜在问题,如i=m是终止循环,此时若最后一行不为空的话,将漏扫

if(~isequal(X{i},''))%若X{i}不为空

ind_AT{k}=union(ind_AT{k},i);%不可等价关系赋初值

if(isequal(X{i},X{j}))

X{j}='';%若X{i}==X{j},则删除X{j}

ind_AT{k}=union(ind_AT{k},j);%寻找不可等价关系

end

end

end

k=k+1;

end

--------------------------------------------------------------------------------

%%%delete_AT函数的源代码

functiony=delete_AT(X,ATi)%删除X中第i列的属性值

[m,n]=size(X);

[l,k]=size(X{1});

fori=1:m

X{i}{ATi}='';

end

y=X;

--------------------------------------------------------------------------------

%%%%%pos函数实现

functionpos_d=pos(X,D)%求决策系统的正域函数

%X为条件属性,D为决策属性

ind_D=ind(D);%求决策属性D的不可等价关系

[m,n]=size(ind_D);

ind_X=ind(X);%求信息系统属性X的不可等价关系

low=[];%存储正域个体的编号

fori=1:m

forj=1:m

if(~isequal(ind_X{i},[])&&~isequal(ind_D{j},[]))

if(ismember(ind_X{i},ind_D{j}))

low=union(low,ind_X{i});%由性质Pos_AT(d)=low_AT(X1)Ulow_AT(X2)U...

end

end

end

end

pos_d=low;

粗糙集属性约简matlab程序

粗糙集-属性约简-matlab程序 Data2为条件属性,decision2为决策属性 %%%my_test函数实现 clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取信息系统文件 file = textread('data2.txt','%s','delimiter','\n','whitespace',''); %读取文件信息,每一行为一个胞元 [m,n]=size(file); %胞元的大小 for i=1:m words=strread(file{i},'%s','delimiter',' ');%读取每个胞元中字符,即分解胞元为新的胞元 words=words';%转置 X{i}=words; end X=X'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [B,num,AT]=my_reduct(X); %信息系统的约简 ind_A T=ind(X); %信息系统的不可等价关系 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%显示约简信息系统 disp('约简后的条件系统为:'); [m,n]=size(B); for i=1:m disp(B{i}); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取决策系统文件 file = textread('decision2.txt','%s','delimiter','\n','whitespace',''); [m,n]=size(file); for i=1:m words=strread(file{i},'%s','delimiter',' '); words=words'; D{i}=words; end D=D'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%决策系统的正域约简 X_D=X; [l,k]=size(X_D{1}); pos_d=pos(X_D,D);%正域 for i=1:m %%%%%%%%%%%%%%正域有问

属性约简

粗糙集的几种属性约简算法分析 分类:默认栏目 2006.6.16 10:32 作者:万富| 评论:0 | 阅读:1628 陈淑珍,基于粗集的几种属性约简算法分析,武汉工业学院学报,Vol.2 4No.3,Sep .20 05 1.1 利用差别矩阵求最小约简 差别矩阵(Discernibility Matrix)是由波兰华沙大学的著名数学家Skowron[21 提出来的,利用这个工具,可以将存在于复杂的信息系统中的全部不可区分关系表达出来。利用差别矩阵求取最小约简的一个前提是:在数据表的预处理阶段要先对不相容的记录进行处理,即差别矩阵不处理不相容记录。预处理的方法如将冲突的记录数除以记录总数,得到一个粗糙度的量度,该量度可以作为数据表的一个特征。 通过差别矩阵可以很方便地求取核属性,以核属性为出发点,再求取差别函数的最小析取范式,则求析取范式的运算就可以得到很大的简化。而最后得到的每个析取分量对应着一个约简。因此,一定可以得到最小约简。 但该算法的缺陷十分明显:首先,当论域的对象与属性的规模较大时,差别矩阵将占有大量的存储空间口(n的二次方);其次,差别函数的化简本身就是一个NP一hard问题,因此只要数据集稍大一点,就不具备可操作性。 1.2 基于属性依赖度约简算法 求取所有约简是一个NP一hard问题,因此运用启发信息来简化计算以找出最优或次优约简显然是一种可取的方法。 许多启发式约简算法的基本步骤都是:由信息系统或决策表的核为起始点,然后根据属性重要性的某种测度,依次选择最重要的属性加人核中,直到满足终止条件。便得到信息系统或决策表的一个约简(更确切的说,是包含约简的一个属性集)。 一个信息系统中的所有属性对于决策来说并不是同等重要的,在粗集理论中,属性重要性可通过相依度来体现。 决策属性D对于属性R(R属于C)的相依度y(R,D)定义为[3]:显然有,O <,y(R,D), l,y(R,D)给出了决策D对属性R之间相依性的一种测度。它反映了属性R对于决策D的重要程度。在已知条件R的前提下,一个属性R对于决策D的重要度SGF(a,R,D)可以定义为如下的差值:SGF = (a ,R,D)=y(R+{a},D)一y(R,D),SG F= ( a,R,D)反映了把属性a加到R后,R 与D之间相依度的增长程度。事实上,属性对于R与之间相依性的影响越强,则SGF= (a,R,D)的值就越大。 1.3 基于条件信息嫡约简算法 基于属性依赖度的启发式约简方法在实际应用中遇到的一个重大困难是属性间不确定关系的表达。粗糙集约简表达的是属性间的确定性关系,正区域之外等价类族表达的属性间关系并不被粗糙集认可,因此除要求属性满足确定性关系外,挑选有强烈概率因果关系的属性集具有十分意义。 为了描述概率因果关系,人们在处理这类数据时,在约简算法中引人信息嫡来度量属性重要度。 事实上基于信息嫡与基于属性依赖度的启发式算法也是不完备的。 应当指出的是以上所分析的两种算法都只是搜索次优解的算法,采用属性重要性方法的约简算法并不能保证一定能够找到信息系统的最优解。出现这种情况的原因在于属性的“组合爆炸”。在信息系统中各个属性并不是孤立存在的,而是存在着互相之间的联系和影响。某些属性虽然它们的单个重要性都很小,但是当这些属性组合在一起时,却能对整个信息系统的正确分类产生很大的作用,而这一点有时仅仅凭借单个属性的重要性评价方法是很难发现的,因为那些重要性很小的属性很难被约简算法所选择。尽管采用每次属性扩张后都动态调整各属性重要性的办法能够在一定程度上克服这一问题,但还是无法从根本上解决问题。 利用启发式算法的确能够提高约简的求解速度,而且在解空间不复杂的情况下有可能得到最优解或次优解,但在解空间较复杂或属性间关系较为复杂的情况下,用这些方法找到的解极有可能陷人局部最优解,这种算法并非对所有的知识表达系统都适用。 1.4 基于遗传算法的属性约简 遗传遗传算法是一种自适应随机搜索方法,其搜索方式不是由单一的方向或结构,它将多个个体作为可能的解并考虑搜索空间全局范围内的抽样,从而导致以更大的可能性收敛到全局最优解,因此,人们把遗传算法引人粗集属性约简。 算法通过用计算机模拟生物进化过程,使群体不断优化,并在变化过程中找出最优解。在遗传算法中,适应度函数的设计是整个GA 算法的核心步骤,由于几个遗传算子都依赖于染色体的适应度值,因此适应度函数的设计目标,在很大程度上决定着迭代收敛的方向。而粗糙集的属性约简主要是为了求得最小的约简属性集。这样,在保证属性集满足一定精度的情况下,使其属性个数最小,即最终所

粗糙集属性约简matlab程序

粗糙集-属性约简-m a t l a b程序 Data2为条件属性,decision2为决策属性 %%%my_test函数实现 clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取信息系统文件 file=textread('data2.txt','%s','delimiter','\n','whitespace','');%读取文件信息,每一行为一个胞元 [m,n]=size(file);%胞元的大小 fori=1:m words=strread(file{i},'%s','delimiter','');%读取每个胞元中字符,即分解胞元为新的胞元 words=words';%转置 X{i}=words; end X=X'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [B,num,AT]=my_reduct(X);%信息系统的约简 ind_AT=ind(X);%信息系统的不可等价关系%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%显示约简信息系统 disp('约简后的条件系统为:'); [m,n]=size(B); fori=1:m disp(B{i}); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取决策系统文件 file=textread('decision2.txt','%s','delimiter','\n','whitespace',''); [m,n]=size(file); fori=1:m words=strread(file{i},'%s','delimiter',''); words=words'; D{i}=words; end D=D'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%决策系统的正域约简 X_D=X; [l,k]=size(X_D{1}); pos_d=pos(X_D,D);%正域 fori=1:m%%%%%%%%%%%%%%正域有问题%%%%%%%%%%%%%%%%%%%%%%%%%%% if(~ismember(num(i),pos_d)) B{i}='';%若约简后的信息系统B{i}不在正域中则删除该行 end%因为相同的条件得到的决策不一样, end %将在正域规则下约简过的信息系统B连接决策系统D

属性约简方法概述

属性约简方法概述 属性约简又称维规约或特征选择,从数学的角度考虑,就是有p 维数据 x =(x 1,x 2……x p ),通过某种方法,得到新的数据 x’=(x’1,x’2…… x’k ) , k ≤p , 新的数据在某种评判标准下,最大限度地保留原始数据的特征。属性约简主要是为了解决高维数据计算的复杂性和准确性问题。目标是消除冗余和不相关属性对计算过程和最终结果造成的影响。 对数据进行属性约简的意义,主要从以下几个方面考虑: a) 从机器学习的角度来看,通过属性约简去除噪音属性是非常有意义的; b) 对一些学习算法来说,训练或分类时间随着数据维数的增加而增加,经过属性约简可以降低计算复杂度,减少计算时间; c) 假如不进行属性约简,噪音或不相关属性和期望属性对分类的作用一样,就会对最终结果产生负面影响; d) 当用较多的特征来描述数据时,数据均值表现得更加相似,难以区分。 为了描述属性约简方法,这里假设数据集合为D ,D ={x 1,x 2….x n }, x i 表示D 中第i 个实例,1≤i≤n ,n 为总的实例个数。每个实例包含p 个属性{|x i |=p }。从机器学习的角度来看,属性约简方法可以分为监督的和非监督的两类。下面是几种常用的方法。 (1) PCA 主成分分析 主成分概念是Karl parson 于1901年最先引进。1933年,Hotelling 把它推广到随机变量。主成分分析把高维空间的问题转换到低维空间来处理,有效的降低了计算的复杂度。通过主成分的提取,降低了部分冗余属性的影响,提高了计算的精度。 主成分分析的基本思想为:借助一个正交变换,将分量相关的原随机变量转换成分量不相关的新变量。从代数角度,即将原变量的协方差阵转换成对角阵;从几何角度,将原变量系统变换成新的正交系统,使之指向样本点散布最开的正交方向,进而对多维变量系统进行降维处理[43]。 定义4-1[44]:设12(,,...,)'p X X X X =为p 维随机向量,它的第i 主成分分量可表示'i i Y u X =,i =1,2,…, p 。其中i u 是正交阵U 的第i 列向量。并且满足: 1Y 是12,,...,p X X X 的线性组合中方差最大者; k Y 是与11,...k Y Y -不相关的12,,...,p X X X 的线性组合中方差最大。 (k =2,3,…p )。 定义4-2[45]: 设∑是随机向量12(,,...,)'p X X X X =的协方差矩阵,其特征值-特征向量对1122(,),(,),...(,)p p e e e λλλ,其中12...0p λλλ≥≥≥≥。则第i 个主成分为: 1122 '...i i i i i p p Y e X e X e X e X ==+++ i =1, 2, …p ………………….式

粗糙集属性约简matlab程序

粗糙集属性约简m a t l a b程序 (总3页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

粗糙集-属性约简-matlab程序 Data2为条件属性, decision2为决策属性 %%%my_test函数实现 clc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取信息系统文件 file = textread('data2.txt','%s','delimiter','\n','whitespace',''); %读取文件信息,每一行为一个胞元 [m,n]=size(file); %胞元的大小 for i=1:m words=strread(file{i},'%s','delimiter',' ');%读取每个胞元中字符,即分解胞元为新的胞元 words=words';%转置 X{i}=words; end X=X'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [B,num,AT]=my_reduct(X); %信息系统的约简 ind_AT=ind(X); %信息系统的不可等价关系%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%显示约简信息系统 disp('约简后的条件系统为:'); [m,n]=size(B); for i=1:m disp(B{i}); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读取决策系统文件 file = textread('decision2.txt','%s','delimiter','\n','whitespace',''); [m,n]=size(file); for i=1:m words=strread(file{i},'%s','delimiter',' '); words=words'; D{i}=words; end D=D'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%决策系统的正域约简 X_D=X; [l,k]=size(X_D{1}); pos_d=pos(X_D,D);%正域 for i=1:m %%%%%%%%%%%%%%正域有问题%%%%%%%%%%%%%%%%%%%%%%%%%%% if(~ismember(num(i),pos_d)) B{i}=''; %若约简后的信息系统B{i}不在正域中则删除该行 end %因为相同的条件得到的决策不一样, end %将在正域规则下约简过的信息系统B连接决策系统D [m,n]=size(B);

属性约简方法概述

属性约简方法概述 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

属性约简方法概述 属性约简又称维规约或特征选择,从数学的角度考虑,就是有p 维数据 x =(x 1,x 2……x p ),通过某种方法,得到新的数据 x’=(x’1,x’2…… x’k ) , k ≤p , 新的数据在某种评判标准下,最大限度地保留原始数据的特征。属性约简主要是为了解决高维数据计算的复杂性和准确性问题。目标是消除冗余和不相关属性对计算过程和最终结果造成的影响。 对数据进行属性约简的意义,主要从以下几个方面考虑: a) 从机器学习的角度来看,通过属性约简去除噪音属性是非常有意义的; b) 对一些学习算法来说,训练或分类时间随着数据维数的增加而增加,经过属性约简可以降低计算复杂度,减少计算时间; c) 假如不进行属性约简,噪音或不相关属性和期望属性对分类的作用一样,就会对最终结果产生负面影响; d) 当用较多的特征来描述数据时,数据均值表现得更加相似,难以区分。 为了描述属性约简方法,这里假设数据集合为D ,D ={x 1,x 2….x n }, x i 表示D 中第i 个实例,1≤i≤n ,n 为总的实例个数。每个实例包含p 个属性{|x i |=p }。从机器学习的角度来看,属性约简方法可以分为监督的和非监督的两类。下面是几种常用的方法。 (1) PCA 主成分分析 主成分概念是Karl parson 于1901年最先引进。1933年,Hotelling 把它推广到随机变量。主成分分析把高维空间的问题转换到低维空间来处理,有效的降低了计算的复杂度。通过主成分的提取,降低了部分冗余属性的影响,提高了计算的精度。 主成分分析的基本思想为:借助一个正交变换,将分量相关的原随机变量转换成分量不相关的新变量。从代数角度,即将原变量的协方差阵转换成对角阵;从几何角度,将原变量系统变换成新的正交系统,使之指向样本点散布最开的正交方向,进而对多维变量系统进行降维处理[43]。 定义4-1[44]:设12(,,...,)'p X X X X =为p 维随机向量,它的第i 主成分分量可表示'i i Y u X =,i =1,2,…, p 。其中i u 是正交阵U 的第i 列向量。并且满足: 1Y 是12,,...,p X X X 的线性组合中方差最大者; k Y 是与11,...k Y Y -不相关的12,,...,p X X X 的线性组合中方差最大。(k =2, 3,…p )。

属性约简

粗糙集的研究对象是一个数据集,数据集一般被保存为数据表格形式,即数据库或信息系统。信息系统的形式是由研究对象和属性值关系构成的二维数据表,类似于基础数学中的关系数据库。信息系统实现了粗糙集模型的知识表示。 定义 2.1.1[46] 设(,,,)S U A V f =为一个数据库,即信息系统,也称为知识表示系统。其中12{,}U U x x x = 为一个非空的有限对象集,12{,,}A A a a a = 是属性的有限非空集合,a V V =?,a A ∈,a V 为属性a 的值域;定义信息函数 :U V c a f A ?→ . 例如表2.1.1是一个信息系统,其中12345{,,,,}U x x x x x =, 1234{,,,}A a a a a =,123a a a V V V ==={0,1},4a V ={0,1,2}. 表2.1.1 信息系统 定义2.1.2[46] 对于a A ?∈,x U ?∈,(,)a f x a V ∈,对于P A ??≠?,定义:{(,):(,)(,),}I x y U U f x q f y q q P =∈?=?∈, I U 称为上的不可分辨关系。 (1)若(,)x y I ∈,则称:x y 和是不可分辨的。 (2)不可分辨关系是等价关系,具有: 自反性:xIx ; 对称性:xIy yIx ?;

传递性:,xIy yIz xIz ? . (3) I 是U 上的一个等价关系,[]{,}I x y y U xIy =∈, 12{[]}{,}I k U I x x U X X X =∈= ,12,k X X X 称为U 关于I 的一个划分。 (4)P I ?≠?,1,2I I I ∈, 112{,}k U I X X X = ,212{,}l U I Y Y Y = , 12{,1,2,1,2}i j U I I X Y i k j l ?=?== ,()I P ind P I P ∈== , 则称:()ind P U 是上的一个等价关系,称为P 上的不可区分关系。 ()[][]ind P I I P x x ∈= 称为P 的基本知识。 当12()()ind I ind I ?,称1,I 比2I 细,21I I . 1.1.1粗糙集与近似 定义2.1.3[46] X U ?,I 是U 上的一个等价关系,12{,}k U I X X X = ,若存在1i X ,2i X j i X U I ∈,.st X =1 t j i t X = ,称X 是关于I 的精确集。否 则称X 是I 的粗糙集。 定义 2.1.4[46] 给定一个知识系统(,,,)S U A V f =,D A ?,X U ?, x U ∈,集合X 关于D 的下近似,上近似,负区域及边界区域分别为: 下近似:()D apr X DX ={:()}x U D x X = ∈? {,}Y U D Y X =∈? {[][],}D D x x X x U =?∈ ; 上近似: ()D apr X =DX = {:()}x U D x X ∈?≠? {,}Y U D Y X =∈?≠? {[][],}D D x x X x U =?≠?∈ ; 负区域:()D neg X =()D U apr X -= {:()}x U D x X ∈?=? ;

相关文档
最新文档