[DataAnalysis]机器学习分类——基于规则的分类器

基于规则分类器的特点

1、规则集的表达能力基于等价于决策树

2、基于规则的分类器通常用于产生更易于解释的描述性模型,而模型的性能却可与决策树分类器相媲美。

3、很多基于规则的分类器(如RIPPER采用的基于类的规则定序方法非常适用于处理类分布不平衡的数据集

分类规则表述形式

基于规则的分类器是使用一组"if ... then..."规则来对记录进行分类的技术。每一个分类规则可以表示为如下形式:

r_i:(rule_i)\rightarrow y_i

规则左边称为规则前件,它是属性测试的合取:

rule_i=(A_1\quad op\quad v_1)\wedge (A_2\quad op\quad v_2)\wedge ...(A_k\quad op\quad v_k)

分类规则的质量度量

给定数据集D和分类规则r:A\rightarrow y

1、覆盖率:和数据集中触发规则r的记录所占的比例

Coverage(r)=\frac{|A|}{|D|}

2、准确率/置信因子:触发r的记录中类标号等于y的记录所占的比例

Accuracy(r)=\frac{|A\cap y|}{|A|}

基于规则的分类器所产生的规则集的两个重要性质

1、互斥规则:如果规则集R中不存在两个规划被同一条记录触发。

2、穷举规则:如果对属性集的任一组合,R中都存在一条规则加以覆盖,则称规则集R具有穷举覆盖

这两个性质共同作用,保证每一条记录被仅且一条规则覆盖。

3、规则非互斥时的解决方法:

(1)有序规则:规则集中的规则按照优先级降序排列,有序的规则集也称为排序表

规则的排序方案:

(1)基于规则的排序方案:

确保每一个测试记录都是由覆盖它的“最好的”规则来分类。缺点是规则的秩越低越难解释,因为每个规则都假设所有排在它前面的规则不成立。

(2)基于类的排序方案:

属于同一类的规则在规则集R中一起出现。然后这些规则根据他们所属的类信息一起排序。

(2)无序规则:允许一条测试记录触发多条分类规则,把每条被条件触发的后件看做是对应类的一次投票,然后计票确定测试记录的类标号。

规则提取的直接方法

1、顺序覆盖算法:

算法开始时决策表R为空,接下来用函数Learn-One-Rule提取类y的覆盖当前训练记录集的最佳规则。在提取规则时,类y的所有训练记录被看做是正例,而其他类的训练记录则被当成反例。如果一个规则覆盖大多数正例,没有或者仅覆盖极少数反例,那么该规则是可取的。一旦找到这样的规则,就删掉它所覆盖的训练记录,并把新规则追加到决策表R的尾部。重复这个过程直到满足终止条件。

(1)规则增长策略:从一般到特殊和从特殊到一般

 

(2)规则评估:

a 准确率:缺点是没有考虑到覆盖率

b Laplace

Laplace=\frac{f_++1}{n+k}

c m估计

m\_estimate=\frac{f_++kp_+}{n+k}

n是规则覆盖的样例数,f_+是规则覆盖的正例数,k是类的总数,p_+是正类的额先验概率

d 使用统计量检出覆盖率较低的规则,似然比统计量:R=2\sum_{i=1}^{k}f_ilog(f_i/e_i),其中k是类的个数,f_i是规则覆盖的类i的样本观测频率,e_i是规则作随机猜测的期望频率。R是满足自由度为k-1\chi ^2分布。较大的R值说明该规则作出的正确预测数显著地大于随机猜测的结果。

FOIL信息增益

规则的支持度计数对应于它所覆盖的正例数。假设规则r:A\rightarrow +覆盖p_0个正例和n_0个反例。增加新的合取项B,扩展后的规则r':A\wedge B\rightarrow +覆盖p_1个正例和n_1个反例。则:

FOIL's\quad information\quad gain=p_1\times(log_2\frac{p_1}{p_1+n_1}-log_2\frac{p_0}{p_0+n_0})

倾向于选择那些高支持度计数和高准确率的规则。

2、RIPPER算法

(1)对两类问题,RIPPER算法选择以多数类作为默认类,并为预测少数类学习规则。对于多数类问题,按照类的频率对类进行排序,在第一次迭代中使用顺序覆盖算法产生最不频繁类区分正例和反例的规则。接下来提取区分次不频繁类和其他类的规则,知道剩下最频繁的类作为默认类。

(2)规则增长:使用从一般到特殊的策略进行规则增长;使用FOIL信息增益选择最佳合取项添加到规则前件中

(3)建立规则集:规则生产后,它所覆盖的所有正例和反例都要被删除。只要该规则不违反基于最小描述长度原则的终止条件,就将它添加到规则集中。如果新规则将规则集的总描述长度增加了至少d个比特位,那么RIPPER算法就停止将该规则加入到规则集。RIPPER的另一个终止条件是规则在确认集上的错误率不超过50%。

规则提取的间接方法

利用决策树的结果生成规则

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值