📄 ruduction.txt
字号:
一种基于粗糙集的启发式属性约简算法 2007-06-28 16:57:17
大 中 小
标签:属性约简 粗糙集 c
原创dataminer@163.com, http://blog.sina.com.cn/dataminer321 转贴请注明。
QQ:275869936
这是一个C++下的基于粗糙集理论的启发式属性约简算法,
大家看看吧
typedef struct unit
{
int a;
int b;
int c;
int d;
};
unit object[N],matrix[N][N];
object数组存储对象
matrix[j]是区分矩阵的一个单元
在存储空间上是比较浪费,
不过也是一个实现的思路
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
matrix[j].a = -1;
matrix[j].b = -1;
matrix[j].c = -1;
matrix[j].d = -1;
}
for (i=0;i<N-1;i++)
for (j=i+1;j<N;j++)
{
if (object.a == object[j].a )
matrix[j].a = 0;
else matrix[j].a = 1;
if (object.b == object[j].b )
matrix[j].b = 0;
else matrix[j].b = 1;
if (object.c == object[j].c )
matrix[j].c = 0 ;
else
matrix[j].c = 1 ;
if (object.d == object[j].d)
matrix[j].d = 0;
else
matrix[j].d = 1;
}
剩下的就是如何启发的问题了,你可以随机选择一个属性,或者基于属性的重要性进行启发。只是提供一种编程思路。
这是一年前在哈工大机器学习论坛发表的帖子,今天搬家了,拿到这里充数了。
这是最初的程序,当然了今天再看看,就有很多改进的地方了,比如采用STL中的list、vector来保存对象域、属性集,就是通用的一种约简算法了,可以适用于所有的离散型数据集。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -