原文放以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
  PRUNEA
  计算亲和力(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是满足规则集的实例个数,但是没有预测类。
需要强调的是,规则是模糊的,TPFNTNFP的计算也包含了实例与规则之间的亲和程度。这种计算方法是采用标准的聚类模糊算子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按变异率变异
   PRUNEK
   IF 缓冲区中包含有K
       返回相关元素
   THEN
     计算亲和力
     添加到缓冲区  
END FOR EACH
   抗体种群=抗体种群+克隆的种群
END FOR
结果=抗体集中的最佳抗体
RETURN 结果
Fig.2 改进IFRAIS后的克隆选择算法
4 实验结果
为了评估加速的性能,IFRAIS和改进后的IFRAIS均用到了6个从UCI中获得的公开数据集中。实验运用了分布均衡分层交叉验证,是一个众所周知的版本,用k-fold交叉验证,提高了估计的质量,在分割数据集的时候使用了均衡同类分布。
Table 1 数据集,列数,属性数,连续属性数,类数
 
注意到,在IFRAIS中,只有连续的属性是模糊的。Votes数据集并没有任何模糊的连续属性值,而其他的数据集都有 69个模糊的连续属性值。
所有的实验用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,其实时间相差并不很大,人的感观根本感觉不到。是不是在特定的场合才要求这么高的准确度?