ruduction.txt

来自「这是一个C++下的基于粗糙集理论的启发式属性约简算法,你可以随机选择一个属性」· 文本 代码 · 共 56 行

TXT
56
字号
一种基于粗糙集的启发式属性约简算法     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 + =
减小字号Ctrl + -
显示快捷键?