1. 引言
粗糙集理论 [1] 是一个用于处理不确定的数学工具,经典粗糙集理论建立在单个二元关系上,不能用于处理具有多个二元关系的决策系统。Qian等 [2] 提出了基于多个二元关系的决策系统,称为多粒度粗糙集理论。多粒度粗糙集模型分为乐观多粒度粗糙集模型和悲观多粒度粗糙集模型,由于乐观多粒度粗糙集模型的构造过于放松,悲观多粒度粗糙集模型的构造过于严苛,因此,Xu等 [3] 提出了广义多粒度粗糙集模型。一些学者针对广义多粒度粗糙集理论进行了深入研究。Qian等 [4] 构造了一个广义层次决策表,并将多粒度和序贯三支决策相结合,提出了广义层次多粒度序贯三支决策模型。Xu等 [5] 通过考虑类与概念之间的相对和绝对定量信息,提出了两种广义多粒双定量决策理论粗糙集模型。Xu等 [6] 针对局部广义多粒度邻域粗糙集模型,提出了动态更新近似的方法。张先韬等 [7] 给出了广义多粒度粗糙集约简的一些基本性质,给出matlab计算的过程及计算实例。
在已有研究中,广义多粒度粗糙集特征选择的研究并不完善,未有人通过元启发式算法进行广义多粒度粗糙集特征选择算法的研究。元启发式算法是启发式算法的改进,由于其有较好的泛化性、较强的通用性,现已被广泛应用于各个领域。因此,本文首先介绍了广义多粒度粗糙集的相关概念,然后详细介绍了蚁群算法的基础知识,在此基础上提出通过元启发算法(蚁群算法)实现对广义多粒度粗糙集特征选择算法的研究。实验结果表明,本文所提的算法可以对高维数据进行降维,并且得到的特征子集并没有降低原数据集的分类精度。
2. 基本概念
四元组
为决策系统,其中U为论域,C为条件属性集,D为决策属性集,V为
的值域集,f为映射函数。
定义1 [8] 给定决策系统
,对
,粒度集
,
,通过特征函数
描述X和等价类
之间的包含关系,特征函数
定义为:
(
),
其中
为x的特征函数。
定义2 [8] 给定决策系统
,对
,粒度集
,
,
是x的支持特征函数,
,X在粒度集P上的广义多粒度粗糙集上近似集和下近似集定义为:
,
.
定义3 [8] 给定决策系统
,对
,粒度集
,
,X在粒度集P上的广义多粒度粗糙集正域、边界域以及负域定义为:
,
,
.
定义4 [8] 给定决策系统
,不可分辨关系
在U上导出的划分为
,粒度集
,
,
,决策类集合U/D在粒度集P上的广义多粒度粗糙集上近似集和下近似集定义为:
,
.
决策类集合U/D在粒度集P上的正域和边界域定义为:
,
.
性质1给定决策系统
,对
,粒度集
,
,
,粒度集
,
,
,
,可得
或
均不恒成立。
3. 广义多粒度粗糙集特征选择算法
元启发式算法包括遗传算法 [9] 、蜂群算法 [10] 、蚁群算法 [11] 等。接下来将详细介绍蚁群算法。
现实生活中,蚂蚁在觅食的过程中会在其经过的路径上留下信息素,后面的蚂蚁能感知到路径上的信息素,依据信息素指导自己的行为,选择具有信息素含量较多的路径可能性最大,也会留下信息素并对走过路径上的信息素加强。这样,大量蚂蚁组成的集体觅食行为就表现为对信息素正反馈的现象,进而逼近了最优路径。受现实生活中蚂蚁觅食的影响,Dorigo等 [11] 提出了蚁群优化算法。Jensen等 [12] 将蚁群优化算法用于粗糙集中的特征选择。Chen等 [13] 将粗糙集中求取核属性集的方法融合到利用蚁群优化算法进行特征选择的算法中。特征选择的过程中,将单个条件属性看做一个节点,节点和节点之间的路径就是特征选择的过程,首先计算决策系统的核属性集,然后定义最大迭代次数,在每次迭代过程中给定一个由蚁群组成的搜索空间,蚁群中的每只人工蚂蚁从核属性集开始构造解,随机选择一个节点,再依据概率公式进行下一个节点的选择直到满足构造解的停止条件。每轮迭代结束后,进行信息素的更新,迭代过程结束后得到最优特征子集。下面将详细说明通过蚁群算法对决策系统进行特征选择的过程。
启发式信息
定义5 [8] 给定决策系统
,粒度集
,
,对
,D关于粒度集P在广义多粒度粗糙集下的依赖度定义为:
.
定义6 给定决策系统
,粒度集
,
,
,粒度集
,
,
,粒度集
,
,
,
,
,若属性集B为DS的广义多粒度属性约简,那么B应该满足如下条件:
1)
;
2)
,
。
定义7给定决策系统
,粒度集
,
,
,粒度集
,
,
,
,
,对
的内部属性重要度定义为:
.
当
,说明属性b是不重要的,当
,说明属性b是不可缺少的。
因此可以将核属性集定义为:
.
性质2广义多粒度粗糙集理论中,满足核属性集是约简集的交集,即:
.
证明:
给定决策系统
,粒度集
,
,
,
。
1) 设
,
使得
,满足
(粒度集
,
,
),因为
,故
(粒度集
,
,
),由定义7可得
,即
,因此可得
。
2) 设
,由定义7可得
(粒度集
,
,
)。
,使得
(粒度集
,
,
)且
,
(粒度集
,
,
),即
,又因为
,那么
,因为
,可得
,因此
。
定义8给定决策系统
,粒度集
,
,
,粒度集
,
,
,
,
,对
的外部属性重要度定义为:
.
给定决策系统
,首先通过定义7计算DS中的核属性集core,每只人工蚂蚁构造解时从core开始,从候选属性集中随机选择一个节点
,当前人工蚂蚁在节点i,对
,j关于i的启发信息定义为:
,
如果
,那么
,其中
。
可行解的构造
当前人工蚂蚁在节点i,依据概率选择下一个节点,概率计算如下:
,
.
其中k表示蚂蚁数;t表示迭代次数;
表示候选属性集;
表示节点i到节点j路径上的信息素;
表示节点j关于节点i的启发信息;
表示信息素相对于启发信息的相对重要性;
表示启发信息相对于信息素的相对重要性。若
,人工蚂蚁选择下一个节点主要是依据信息素的大小;若
,人工蚂蚁选择下一个节点主要是依据启发信息的大小。
只要满足以下两个条件之一,人工蚂蚁将停止解的构造:
1)
。其中R是蚂蚁构造的当前解(
,
;
,
);
2) 当前解的长度
大于临时最短属性集合的长度。

Table 1. A generalized multi-granularity rough set feature selection algorithm based on ant colony algorithm (GL-AFS)
表1. 基于蚁群算法的广义多粒度粗糙集特征选择算法
信息素的更新
每轮迭代结束时,可得到一个当前最优解,此时需要对每条路径上的信息素进行更新,信息素依据以下规则更新:
.
其中
表示迭代t次时路径
上的信息素值;
表示下一次迭代时路径
上的信息素值;
表示信息素蒸发的衰减常数;
表示路径
上存储的信息素值,计算方式如下:
.
其中q是给定的常数;
表示在迭代次数t时,当前得到属性集合的长度。
下面将给出通过蚁群算法实现广义多粒度粗糙集特征选择的算法,算法的具体描述见表1。
表1中,步骤2用于计算广义多粒度粗糙集的依赖度,步骤3用于求取决策系统的核属性集,步骤4用于模拟蚂蚁觅食的过程,其中,步骤4.1.3为蚂蚁觅食结束的条件,步骤4.2为路径上信息素的更新。
4. 实验分析
本节将在运行时间和分类精度两个方面对所提出的算法进行验证。实验选用6组标准UCI数据集,所用数据集见表2。数据集通过WEKA3.6进行等频离散化,将数据集中名词性数据使用整数进行替换表示。实验所运行的硬件环境为:Windows10 64位操作系统;8192MB RAM内存;Intel Core i3-9100 CPU;软件环境为:Pycharm 2020;编程语言:Python。

Table 3. Feature subset length comparison
表3. 特征子集长度比较

Table 4. KNN classification accuracy
表4. KNN分类精度
本节验证GL-AFS算法的有效性,进行了两方面的比较:特征子集长度的比较,见表3;特征子集分类精度的比较,见表4、表5。为了满足多粒度的思想,实验任选3个属性看作一个粒度(
)、4个属性看作一个粒度(
)、5个属性看作一个粒度(
),且满足粒度和粒度之间的交集为空,粒度的并集为条件属性集。实验参数:阈值
、
、
、
、
、
、初始化信息素为0.5。算法运行停止的条件是:达到最大循环次数或三次迭代过程得到的特征集合相同。由于主要依据信息素进行特征选择、粒度选择的随机性使得蚁群算法每次得到的结果不同,为了保证实验的准确性,将GL-AFS算法运行20次,取特征选择结果长度的平均值放入表3中。通过表3可以看出通过本文提出的GL-AFS算法可以起到对高维数据集进行降维处理的效果。表4、表5分别为GL-AFS算法运行20次,对每次得到的结果通过十折交叉验证的方法计算在KNN、SVM分类器上的分类精度,分别取20次的平均值。通过表4、表5可以看出任选3个属性一个粒度、任选4个属性一个粒度、任选5个属性一个粒度通过GL-AFS算法得到特征集合的分类精度和条件属性集C下的得到的分类精度的数值相差不大。可以得出,通过GL-AFS算法可以得到和原数据分类性能相差不大的特征集合。

Table 5. SVM classification accuracy
表5. SVM分类精度
5. 总结
目前针对广义多粒度粗糙集特征选择的研究不完善,通过元启发式算法进行广义多粒度粗糙集特征选择未有人研究,因此,本文将元启发式算法(蚁群算法)用于广义多粒度粗糙集特征选择中具有很重要的研究意义。实验表明:本文所提算法不仅可以对高维数据实现降维的效果且得到的特征集合具有和原数据集相差不大的分类精度。
基金项目
本文受烟台市科技计划项目(编号:2022XDRH016)的资助。