规则学习

规则学习

  • 规则学习
    • 基本概念
    • 序贯覆盖
    • 剪枝优化
    • 一阶规则学习
    • 归纳逻辑程序设计


规则学习(rule learning)就是从训练数据中学习出一组能够用于新样本判别的规则。


基本概念

规则
一条基本的规则如下:

f1f2f3fl
其中箭头右边的称为规则体,左边的部分称为规则头表示这条规则的结果。规则体有逻辑文字 fk 的合取式组成,其中的合取符号“ ”表示并且,每个 fk 都表示是一个对属性值布尔表达式。 l 是规则提逻辑文字的个数,称为规则的长度。规则头“ ”表示规则所判定的目标类或者概念。

冲突
规则集合中的每一条规则都可以看成是一个子模型,规则集合时这些子模型的一个集合。当同一个样本被判别结果不同的多条规则覆盖时,称为发生了冲突。解决冲突的办法称为冲突消解。常用的冲突消解的办法为:投票法、排序法、元规则法等。

缺省规则
从训练集学的规则也许不能覆盖所有可能的新样本。因此规则学习算法通常会设置一条默认规则来处理未覆盖的样本。

规则分类
命题规则:由原子命题 和逻辑连接词(与或非)构成的简单陈述句。
一阶规则能表达复杂的关系,因此也称为关系型规则。


序贯覆盖

规则学习的目标是产生一个能股改尽可能多的样例的分规则集。最直接的办法就是序贯覆盖也就是所谓的逐条归纳:在训练集上每学到一条规则,就将该规则覆盖的训练样例去除,然后剩下的训练样例组成训练集重复上述过程。

上述基于穷举的做法在属性和候选值较多的情况下并不适用。有两种改进的方:
自顶向下:从比较一般的规则开始,然后逐渐添加逻辑文字以缩小规则覆盖范围,直至满足终止条件。这个方法是一个从普通到特殊的过程。也称作生成测试法,是规则逐渐收缩过程。
自下向上:从比较特殊的规则开始,然后逐渐删除逻辑文字以扩大规则的覆盖范围,知道满足停止条件。这个方法是一个从特殊到普通的过程。也称作是数据驱动法,是规则逐渐泛化的过程。


剪枝优化

与决策树类似,为了防止过拟合,通常需要进行剪枝操作。基于某种性能度量指标来评价增删逻辑文字前后的规则性能或者是增删前后规则集的性能,从而判断是否需要剪枝。
预剪枝
后剪枝


一阶规则学习


归纳逻辑程序设计

归纳逻辑程序设计在一阶规则学习中引入了函数和逻辑表达式的嵌套。
最小一般泛化
递归结


你可能感兴趣的:(机器学习)