RIpple-DOwn Rule算法和weka中Rider使用–数据挖掘学习和weka使用(五)

10 6月

RIpple-DOwn Rule算法简介

RIpple-DOwn Rule算法(链波下降规则)是一种专家系统方法论,它是澳大利亚新南威尔士大学的Compton教授于1989年提出。它是一种用于知识表示和获取的方法。从某种意义上看RDR算法是CBR方法的一种扩展或者变形,RDR将规则引入CBR中,用规则来索引案例,以错误驱动机制来获取知识。

RIpple-DOwn Rule算法是比较简单,有时候得出的结果不能让人满意,但是它是我最喜欢的一种算法,它通过否定规则来表示结果,非常适合人类理解。

RIpple-DOwn Rule算法流程

RIpple-DOwn Rule算法使用了二元决策树,区别于标准决策树,RDR用复合条款是来确定分支,同时这些条款不需要详尽涵盖所有情况,即可以有分类错误的情况,然后用错误的数据作为新整体再处理,以获得内部分支。

为了方便说明,我们先看一个RDR的输出

weka5_1

这是一个医学诊断系统的涟波规则。

我们还是以weather.arff的数据为例。

weka5_2

看一下我们的分类要求,要分成no和yes两类。

no 的权重是5,yes的权重是9。

由错误驱动生成第一条规则

play = no

很明显这条规则没有正确分类

weka5_3

总共14个样本,有9个被分类错了。

再来生成内规则。

生成过程就省略了…请参考本文最后的参考文献。第二条规则是

Except (humidity <= 82.5) => play = yes

序号为6的数据被错误分类为play了.最终的规则是

play = no

           Except (humidity <= 82.5) => play = yes

最终的规则分类正确10个,错误4个,正确率71.4286 %。

比较图如下:

weka5_4

左边是分类结果,右边是原始结果。

使用Weka实现RDR算法

在weka中RDR算法对应的类是Rider,我使用的是3.6,3.7版本没有找个类了…

核心代码:


使用:


还是使用weather数据,完整代码如下:


结果:

weka5_5

相关参考

没有细致的介绍RIpple-DOwn Rule算法主要是因为这个算法虽然简单,但实现方法比较多,又涉及到拓扑和集合运算,有兴趣的可以参考一下:

Induction of Ripple-Down Rules Applied to Modeling Large Databases

发表评论

电子邮件地址不会被公开。