原文放以pdf放附件里.
用人工免疫系统加快推进模糊规则的归纳
摘要:这篇文章介绍了用人工免疫系统的方法从原始数据中或取新的模糊规则的加速范围。这个改进算法在很多实验上证明了比传统的算法要快。
关健词:人工免疫系统,数据挖掘技术,模糊规则归纳
1
引言
数据挖掘的任务
通常根据他们的应用分类。一种分类是分类任务(
classification task
)
,它的目的是发现对象的一般特性,以便于预测其他的类。所有方法当中一种全新的方法,整合人工免疫系统(
AIS
)和模糊系统(
FS
)
,不仅准确,而且可以使模糊规则预测类的一个实例变的易于理解。这种算法发现了“
if(
模糊条件
)then(
类
)
”这种形式的规则集,解释如下:如果实例的属性值满足了模糊条件,那么实例属于这种规则所预测的类。一种基于
AIS
的用来挖掘
IF-THEN
规则的算法是遗传算法中否定选择算法的扩展。另一种主要是克隆选择算法,也就是所谓的加速机制,用来适应在迭代过程当中实体的分布。模糊的
AIS
是在文献
[5]
中提出的,然而,它的工作侧重于聚类,而不是分类。
此篇文章介绍了
IFRAIS
的加速扩展,第一个用于模糊规则挖掘的
AIS
。
2 IFRAIS
学习
IFRAIS
的数据准备包括以下几个步骤:(
1
)。为数据集模糊变量创建属性;(
2
)为实际数据集创建类列表;(
3
)为数据集中的每个属性计算机信息增益。
IFRAIS
用连续覆盖作为主要的学习算法。第一步,规则集初始化为一个空集合;第二步,对每一类预测算法,反复调用克隆选择过程的参数,为可操作集中的每个操作实例进行初始化:当前可操作集和预测的类。克隆选择过程返回一个被发现的规则,把返回的规则加入到规则集中,把当前操作集中变异掉的实体删除掉。
克隆选择算法用来引导规则向最优适应值方向发展。(如图
1
)。这个方法的基本元素是抗体和抗原,这个和生物上相对应。抗原是数据集的一个实例,抗体是模糊规则。同样,模糊规则结构包含了模糊条件和类值,抗体包含了基因和基因的信息。抗体中的基因数量等于数据集中的属性值。每个基因包含一个模糊规则和一个用来表示模糊条件是否满足的激活标志。
输入:操作集,类值
C
输出:模糊规则
随机产生抗体集,规模为
S
,和类值
C
FOR
抗体集中的每个抗体
A
PRUNE
(
A
)
计算亲和力(
A
,操作集)
END FOR EACH
FOR i-1 do
产生种群个数
n
WHILE
克隆个数
<S-1
克隆抗体
-
竞争选择(抗体种群)
克隆数
=
新产生个体
X
个抗体
克隆种群
=
克隆种群数
+
克隆数
END WHILE
FOR EACH
克隆种群中的克隆个体
成熟率
=
变异率
(K)
变异(
K
,成熟率)
PRUNE(K)
计算亲和力(
K,
操作集)
END FOR EACH
抗体种群
=
成功的(抗体种群,克隆种群)
END FOR
结果
=
最优抗体(抗体种群)
RETURN result
第一步,类值
c
作为基因信息参数传入算法中,随机产生抗体种群。
第二步,在所产生的种群中依次对每个抗体进行选择。规则选择有双重作用,抑制过度复杂的规则,促进简规则的生成。亲和力的计算机依据以下公式:
TP
是满足规则的实例个数,且依据此规则有相同数量的预测类;
FN
是不满足规则的实例个数,但是有预测类;
TN
是不满足规则的实例个数,且没有预测类
FP
是满足规则集的实例个数,但是没有预测类。
需要强调的是,规则是模糊的,
TP
,
FN
,
TN
,
FP
的计算也包含了实例与规则之间的亲和程度。这种计算方法是采用标准的聚类模糊算子
min
。如果
AFFINITY(rule,example)>L,
则实例满足规则。其中,
L
是生效极限。
对于每一个被克隆的抗体,算法产生
x
个克隆体。
x
由抗体亲和力的比例来确定。接着,每一个克隆的抗体要进行变异过程,变异率和亲和力的比例刚好相反。一旦一个克隆体变异后,它相应的
prune
规则是用先前使用的规则进行的。最后,克隆个体的亲和力是要进行重新计算的。在最后一步中,
T
个最坏的抗体要被克隆选择过程当中产生的
T
个最好的抗体所取代。最后,克隆选择过程返回最好的规则,这些规则会被添加到规则集中,但是也许会被接下来的迭代所淘汰。
IFRAIS
更多的细节查看文献
[2]
3
改进的IFRAIS
应用
IFRAIS
来进行实际的数据挖掘问题是要消耗时间的。为了减少成熟时间,同时不影响学习的质量,我们对此算法做了一些改进。主要想法是在克隆选择算法中计算亲和力的同时简单依靠规则缓冲区。在哈希表中成对出现:规则和与被保存的实际操作集的亲和力。如果哈希表包含所给的规则,那么与之相关的亲和力将会作为结果被返回,省略了详细的计算亲和力的过程。在其他情况下,规则的亲和力是要进行计算的,而且这个亲和力是要保存在哈希表中的,计算的值被返回作为功能输出。
输入:操作集,类值
C
输出:模糊规则
空哈希表缓冲信息
随机产生规模为
S
的抗体种群和类值
C
FOR EACH
抗体种群中的抗体
A
PRUNE(A)
IF
缓冲区中包含
A
返回相关元素
ELSE
亲和力
=
计算的亲和力(
A
和操作集)
添加到哈希表(缓冲区,
A
,亲和力)
END FOR EACH
FOR i=1 do n(
产生个数
)
WHILE
克隆种群规模
<S-1
克隆抗体
=
从抗体集中选择抗体
克隆个数
=
产生
X
个克隆抗体
克隆种群
=
克隆的种群
+
克隆个数
END WHILE
FOR EACH
克隆集中的克隆个体
K
成熟率
=K
的变异概率
K
按变异率变异
PRUNE
(
K
)
IF
缓冲区中包含有
K
返回相关元素
THEN
计算亲和力
添加到缓冲区
END FOR EACH
抗体种群
=
抗体种群
+
克隆的种群
END FOR
结果
=
抗体集中的最佳抗体
RETURN
结果
Fig.2
改进
IFRAIS
后的克隆选择算法
4
实验结果
为了评估加速的性能,
IFRAIS
和改进后的
IFRAIS
均用到了
6
个从
UCI
中获得的公开数据集中。实验运用了分布均衡分层交叉验证,是一个众所周知的版本,用
k-fold
交叉验证,提高了估计的质量,在分割数据集的时候使用了均衡同类分布。
Table 1
数据集,列数,属性数,连续属性数,类数
注意到,在
IFRAIS
中,只有连续的属性是模糊的。
Votes
数据集并没有任何模糊的连续属性值,而其他的数据集都有
6
或
9
个模糊的连续属性值。
所有的实验用
5-fold
交叉验证做
50
次。表
2
表明了每个数据集工作的平均时间和平均准确率,在
IFRAIS
和改进的
IFRAIS
,二者均符合标准偏差。如表
2
所示,改进的
IFRAIS
获得比较的结果为标准版,但是时间却很好。比如,要达到
Bupa
数据集相同的准确率,改进的算法(
0.9837+0.0256
)所花的时间比
IFRAIS(0.9837+0.1709)
要短十倍。对于其他的数据集,改进算法所花的时间要比
IFRAIS
所花的时间少好几倍。
5
结论
对
IFRAIS
算法的加速改进
-
一种基于
AIS
的方法用于进行模糊规则挖掘。加速中用到了哈希表,哈希表中存放的数据成对出现:规则和其亲和力。哈希表很大程度上在快了克隆选择过程当中规则亲和力的计算。改进的
IFRAIS
与标准的
IFRAIS
在六个真实数据集上进行了比较。改进的算法要快好几倍。
看起来,还有可能继续用
AIS
提高模糊规则的识别,不仅仅是在时间上,也可以在模糊规则识别的效率上。那样将会在最大程度上进行模糊规则的划分。到目前为止,有且只有三种语言识别形式(低,中,高)与连续属性相关。每一个语言形式用三角形隶属函数所表示。我们已经进行了初步实验,加速的
IFRAIS
可以进行模糊划分。结果是非常乐观的。我们仍然在考虑修改亲和力函数,可以使模糊规则更准备。象文献
[1]
中那样。
读后感:
此篇文章主要用克隆选择算法进行模糊识别,尤其对于具有连续属性的,比如声音。它主要是对原先有的
FRIAIS
进行了改进,加入了哈希结构,使得规则与亲和力能成对出现。与原先的算法达到效果相同,只是时间上要节约好几倍的时间。
0.0256-0.1789
,其实时间相差并不很大,人的感观根本感觉不到。是不是在特定的场合才要求这么高的准确度?