Covering Algorithms:Constructing Rules
Posted 夜空中最亮的星
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Covering Algorithms:Constructing Rules相关的知识,希望对你有一定的参考价值。
覆盖算法:构建规则集合
树和规则的区别 树:是通过自上而下的分治算法来实现的。在一个多重类案例中,决策树在分裂的时候,为了获得最大的分裂纯度,要考虑所有的类。
规则:是由覆盖算法实现, 规则生成的方法,每次只考虑一个类,忽视其他类的事件。一般树形都比相同的规则集合要大的多。(因为树形每次都是分裂一个属性,而规则可以对称表示)
divide-and-conquer algorithm :选择增益信息最大的属性来分裂;covering algorithm: 选择使想要的分类概率最大的那个属性的值对
从下面的图可以看到,空间中包含所有的实例,一个目前部分构建的规则和加入新的约束条件后的规则。(约束是多包含目的类实例,排除其他类的实例)
假设新规则包含总的t个实例,而满足目的类的实例只有p个,那么约束条件就是找到p/t比例最大的属性值。
覆盖算法构建规则的原理如图
For对于每一个类C循环
初始化实例集合为E
while如果实例集合E中有包含类C的实例
创建一个左侧条件为空的规则来预测类C(IF ? then C)
直到规则R已经完备啦(或者是没有更多的属性可以使用)
For 对于每一个没有出现在规则集合R中属性A,和它的值进行循环
考虑是否添加A=的条件到规则R的左端
选择p/t的值最大的属性和属性值
把A=v加入到规则R中
从E中移除哪些被R所覆盖的实例
具体例子(The Contact lens Data)
class 可以为 hard、soft、none值 先从hard开始,创建规则R
对于所有不知道的项?,我们有九种选择(age=young时,总共有9个记录即t=8,而满足条件yes的只有两个即p=2,所以 2/8)
从中可知astigmatism=yes最大,所以选择这个属性和属性值
这个规则依然是不准确的,12个实例中只有4个正确的,所以我们重复定义如下
对于可能的的项?,我们有7种选择
很明显是tear production rate=normal最大,但其实age=young也是2/4=3/6,只是因为3包含的数据更多,所以选择前者
我们应该停止吗?我们寻找的是最精确的规则,不管它有多复杂。Table4.9表示目前已经被覆盖的实例。 下一个可能的?项是?
我们需要在第一个和第四个之间选择一个,但很明显应该选择第四个,因为3>1,由于已经精确到啦最后,所以最后的结果是
由于依然存在class为hard的实例没有覆盖。把之前已经覆盖的数据移除掉,再假设 IF ? then recommendation=hard
以上是关于Covering Algorithms:Constructing Rules的主要内容,如果未能解决你的问题,请参考以下文章
Covering Algorithms:Constructing Rules