基于规则的分类是一种比较简单的分类技术,下面从以下几个方面对其进行介绍
1.任务
所有的分类技术的任务都是利用数据集训练出分类器,然后为每条记录贴上标签,对其进行分类,基于规则的分类任务也是如此。
2.结构
基于规则的分类使用了一组的规则来对记录进行分类,其将这些规则组合起来,形成了如下所示结构
从上之下,当前规则去匹配记录,若当前规则与记录不匹配,则用下一条规则去匹配,直至找到能匹配的规则或者规则用完,结束分类过程。规则所处的位置可以用秩来表示,第一条规则秩最高,最后一条规则秩最低。
每一个分类规则可以表示为如下形式
称为规则前件(
)或前提(
),规则前件是属性测试的集合
为(属性,值)对,
为比较运算符,取自集合
,
为分类标签,称为规则后件 。当规则
的规则前件与记录
的属性匹配时,则称
覆盖
;当
覆盖某条记录时,则称规则
被触发。
3.评分函数
基于规则的分类器的分类质量可以用覆盖率(coverage)和准确率(accuracy)来度量,二者的定义分别为
- 覆盖率:触发了规则的记录在数据集D中所占的比例
- 准确率:在触发了规则的记录中,分类正确的记录所占比例
举个例子对覆盖率和准确率的定义进行说明,在脊椎动物的分类中,现有规则
(胎生=是)^(体温=恒温)哺乳类
数据集D为
在以上14条记录中,记录1、4、7、9、12触发了规则,这5条记录的分类全部正确,该分类器的覆盖率及正确率分别为
4.搜索、优化方法
4.1规则集的性质
在基于规则的分类器中,规则必须满足以下两条重要性质
- 规则互斥:一条记录不能触发两条及两条以上规则
- 规则穷举:数据集中每一条记录都能被规则覆盖
实现规则互斥,可以采用有序规则和无序规则两种方案。在有序规则方案中,规则集中的规则按照优先级降序排列,由覆盖记录的最高秩规则对记录分类,这样就避免多条规则间对记录分类的冲突。有序的规则集也称为决策表,第2节中介绍的分类器结构就是用的有序规则;在无序规则方案中,允许一条记录触发多条规则,规则被触发时视为对其相应类的一次投票,然后计算不同类的票数(可以使用加权方式)来决定记录的类所属。
基于有序规则的分类器对规则排序非常敏感,但是对记录分类时比较容易,不必把记录与每一条规则的前件进行比较,而基于无序规则的分类器则正好相反。在应用中计算量是一个需要重要点考虑的问题,因此一般基于规则的分类器采用有序规则。