📄 79.txt
字号:
发信人: GzLi (笑梨), 信区: DataMining
标 题: [合集]求教粗集求核的算法
发信站: 南京大学小百合站 (Sat May 10 18:22:24 2003)
popray (soso) 于Sun May 4 16:53:28 2003)
提到:
粗集中,求属性约简往往从求核开始,
在文献上找到一个求核的算法,如下
算法 C: 决策表核的计算
输入:决策表T
输出:决策表T的核CORE
算法步骤:
(1) CORE=0 ;
(2) For ( ; >0; --)
{ For( -1; >=0; --)
if 两个对象的决策属性是否不同 then
比较这两个对象在各个属性上的取值
if 只在一个属性a上取值不同,then
attr=a ;
else attr=null;}
(3) CORE=CORE+{attr}
可是用这个算法测试了一下,算出来的都不对,
哪位大侠有求核的相对简单的算法(利用差别矩阵求核似乎很麻烦)
恳请指点。
Thanks
hb2376 (hb) 于Mon May 5 09:25:08 2003)
提到:
这个算法应该是对的,你再检查检查看。
【 在 popray 的大作中提到: 】
: 粗集中,求属性约简往往从求核开始,
: 在文献上找到一个求核的算法,如下
: 算法 C: 决策表核的计算
: 输入:决策表T
: 输出:决策表T的核CORE
: 算法步骤:
: (1) CORE=0 ;
: (2) For ( ; >0; --)
: { For( -1; >=0; --)
: if 两个对象的决策属性是否不同 then
: 比较这两个对象在各个属性上的取值
: if 只在一个属性a上取值不同,then
: attr=a ;
: else attr=null;}
: (3) CORE=CORE+{attr}
: 可是用这个算法测试了一下,算出来的都不对,
: 哪位大侠有求核的相对简单的算法(利用差别矩阵求核似乎很麻烦)
: 恳请指点。
: Thanks
rectangle (四四方方) 于Mon May 5 11:33:47 2003)
提到:
问一下,为什么第二个if中的条件是“只在一个属性值上取值不同?”,
与分明矩阵的方法比较,好像不是很严密。有没有什么理论的根据?
【 在 popray (soso) 的大作中提到: 】
: 粗集中,求属性约简往往从求核开始,
: 在文献上找到一个求核的算法,如下
: 算法 C: 决策表核的计算
: 输入:决策表T
: 输出:决策表T的核CORE
: 算法步骤:
: (1) CORE=0 ;
: (2) For ( ; >0; --)
: { For( -1; >=0; --)
: if 两个对象的决策属性是否不同 then
: 比较这两个对象在各个属性上的取值
: if 只在一个属性a上取值不同,then
: attr=a ;
: else attr=null;}
: (3) CORE=CORE+{attr}
: 可是用这个算法测试了一下,算出来的都不对,
: 哪位大侠有求核的相对简单的算法(利用差别矩阵求核似乎很麻烦)
: 恳请指点。
: Thanks
qjqjlqyf (孔方兄) 于Mon May 5 14:50:33 2003)
提到:
实际核是由分明矩阵内仅含单个元素的单元中的元素构成的集合。所以两个对象中只在一
个属性a上的取值不同,才能成为核中元素。可能是从实践中得出的结论,当然或许也能证
明?
hb2376 (hb) 于Mon May 5 15:50:03 2003)
提到:
根据核的定义:去除该属性后会造成新的不一致。如果两个对象只在该属性上取值不
同,决策值也不相同,那么去掉后必然会造成不一致。另一方面,如果决策值不同的两个
对象在两个以上的属性上取值不同,那么去掉一个后它们还是可以区分的,即没有造成新
的不一致。所以,如果一个属性是核属性,必然有一对对象,它们的决策值不同,而且只
在这个属性上取值不同。其实,在分明矩阵中,就是那些所有单元素属性。因此,如果有
了分明矩阵,核也就自然产生了。但我们应该看到,求分明矩阵比求核更困难。因此,我
认为不应该有利用分明矩阵来求核的想法。
不知我说得对不对,请指正。
【 在 rectangle 的大作中提到: 】
: 问一下,为什么第二个if中的条件是“只在一个属性值上取值不同?”,
: 与分明矩阵的方法比较,好像不是很严密。有没有什么理论的根据?
: 【 在 popray (soso) 的大作中提到: 】
: (以下引言省略...)
rectangle (四四方方) 于Mon May 5 15:59:59 2003)
提到:
re
我是新手,刚刚接触RS,所以有很多问题不是很清晰,谢谢指教。
还有王国胤的书上介绍属性的约简,利用了去除了core的分明矩阵。
但是,分明矩阵的求得是很耗时的,可不可以直接向core中添加非
core属性来作为约简?
【 在 hb2376 (hb) 的大作中提到: 】
: 根据核的定义:去除该属性后会造成新的不一致。如果两个对象只在该属性上取值不
: 同,决策值也不相同,那么去掉后必然会造成不一致。另一方面,如果决策值不同的两个
: 对象在两个以上的属性上取值不同,那么去掉一个后它们还是可以区分的,即没有造成新
: 的不一致。所以,如果一个属性是核属性,必然有一对对象,它们的决策值不同,而且只
: 在这个属性上取值不同。其实,在分明矩阵中,就是那些所有单元素属性。因此,如果有
: 了分明矩阵,核也就自然产生了。但我们应该看到,求分明矩阵比求核更困难。因此,我
: 认为不应该有利用分明矩阵来求核的想法。
: 不知我说得对不对,请指正。
:
:
: 【 在 rectangle 的大作中提到: 】
mining (key) 于Mon May 5 16:36:50 2003)
提到:
不少求约简的算法是从核属性开始的。
求核属性相对而言是比较简单的。
R. Bautista, M. Millan, J. F. Diaz, "An efficient implementation to calculat
e relative core and reducts", IEEE: 791-794,1999
【 在 rectangle (四四方方) 的大作中提到: 】
: re
: 我是新手,刚刚接触RS,所以有很多问题不是很清晰,谢谢指教。
: 还有王国胤的书上介绍属性的约简,利用了去除了core的分明矩阵。
: 但是,分明矩阵的求得是很耗时的,可不可以直接向core中添加非
: core属性来作为约简?
: 【 在 hb2376 (hb) 的大作中提到: 】
hb2376 (hb) 于Mon May 5 20:01:14 2003)
提到:
一般说来,求信息系统的约简有两种方式:一种是从核出发,通过逐步增加属性(怎
样增加一般要利用启发知识,例如条件信息熵,属性重要度等,参见苗夺谦和王国胤的相
关论文)直到满足某种判定条件;另一种是逐步减少属性,直到满足某个判定条件。
可看看王国胤发表在计算机学报2002.7上的《基于条件信息熵的决策表约简》一文。
但现在看来,启发式算法还不能保证一定能找到最小约简,即算法的完备性还有待于进一
步研究,这也是当前约简算法颇具挑战性的课题。
个人意见,望斧正。
【 在 mining 的大作中提到: 】
: 不少求约简的算法是从核属性开始的。
: 求核属性相对而言是比较简单的。
: R. Bautista, M. Millan, J. F. Diaz, "An efficient implementation to calcul..
: e relative core and reducts", IEEE: 791-794,1999
: 【 在 rectangle (四四方方) 的大作中提到: 】
popray (soso) 于Mon May 5 22:33:06 2003)
提到:
实际上这个算法就是源于这个思想:核是由分明矩阵内仅含单个元素的单元中的
元素构成的集合。
但是大家帮忙看个例子,该例子源于《Rough Set中正区域的若干性质》
决策表如下:
a1 a2 a3 a4 d
1 0 0 0 1
0 1 0 0 1
1 1 1 1 1
0 1 0 0 0
0 0 0 1 0
1 1 0 1 0
1 0 1 1 0
0 0 1 1 0
由此得到分明矩阵为:(第一行的1,2,3,4,5,6,7,8是对象标识,矩阵元素中
0表示空集,1,2,3,4分别表示属性a1,a2,a3,a4)
1 2 3 4 5 6 7 8
0 0 1,2 1,4 2,4 3,4 1,3,4
0 0 2,4 1,4 1,2,3,4 2,3,4
1,3,4 1,2,3 3 2 1,2
0 0 0 0
0 0 0
0 0
0
如果照上述思想,核应该是{a2,a3},但是原文献说核是{a2}
约简不唯一,但是核应该是唯一的。
所以不知道这个问题出在哪,大家讨论讨论。
【 在 qjqjlqyf (孔方兄) 的大作中提到: 】
: 实际核是由分明矩阵内仅含单个元素的单元中的元素构成的集合。所以两个对象中只在一
: 个属性a上的取值不同,才能成为核中元素。可能是从实践中得出的结论,当然或许也..
: 明?
pingping98 (追寻我的梦) 于Tue May 6 22:03:10 2003)
提到:
天书!
【 在 popray 的大作中提到: 】
: 粗集中,求属性约简往往从求核开始,
: 在文献上找到一个求核的算法,如下
: 算法 C: 决策表核的计算
: 输入:决策表T
: 输出:决策表T的核CORE
: 算法步骤:
: (1) CORE=0 ;
: (2) For ( ; >0; --)
: { For( -1; >=0; --)
: if 两个对象的决策属性是否不同 then
: 比较这两个对象在各个属性上的取值
: if 只在一个属性a上取值不同,then
: attr=a ;
: else attr=null;}
: (3) CORE=CORE+{attr}
: 可是用这个算法测试了一下,算出来的都不对,
: 哪位大侠有求核的相对简单的算法(利用差别矩阵求核似乎很麻烦)
: 恳请指点。
: Thanks
hb2376 (hb) 于Wed May 7 08:35:54 2003)
提到:
很简单,他错了。可能是输入错误吧。
【 在 popray 的大作中提到: 】
: 实际上这个算法就是源于这个思想:核是由分明矩阵内仅含单个元素的单元中的
: 元素构成的集合。
: 但是大家帮忙看个例子,该例子源于《Rough Set中正区域的若干性质》
: 决策表如下:
: a1 a2 a3 a4 d
: 1 0 0 0 1
: 0 1 0 0 1
: 1 1 1 1 1
: 0 1 0 0 0
: 0 0 0 1 0
: 1 1 0 1 0
: 1 0 1 1 0
: 0 0 1 1 0
: 由此得到分明矩阵为:(第一行的1,2,3,4,5,6,7,8是对象标识,矩阵元素中
: 0表示空集,1,2,3,4分别表示属性a1,a2,a3,a4)
: 1 2 3 4 5 6 7 8
: 0 0 1,2 1,4 2,4 3,4 1,3,4
: 0 0 2,4 1,4 1,2,3,4 2,3,4
: 1,3,4 1,2,3 3 2 1,2
: 0 0 0 0
: (以下引言省略...)
rectangle (四四方方) 于Wed May 7 10:01:13 2003)
提到:
re
nod,应该是他错了
【 在 hb2376 (hb) 的大作中提到: 】
: 很简单,他错了。可能是输入错误吧。
: 【 在 popray 的大作中提到: 】
: (以下引言省略 ... ...)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -