西瓜书学习笔记——第十五章:规则学习

15. 规则学习

  • 15.1 基本概念
  • 15.2 序列覆盖
    • 产生规则的策略
  • 15.3 剪枝优化
  • 15.4 一阶规则学习
    • FOIL算法
  • 15.5 归纳逻辑程序设计

15.1 基本概念

规则学习从训练数据中学习出一组能用于对未见示例进行判别的规则

规则本身是一个贪心的搜索过程
西瓜书学习笔记——第十五章:规则学习_第1张图片
规则集合:规则集合中的每条规则都可以看作一个子模型,规则集合是这些子模型的一个集合

冲突:当同一条示例被判别结果不同的多条规则覆盖时,称发生了冲突
尝试解决冲突的方法为冲突消解,方法有:投票法,排序法,元规则法

默认规则:规则集合也许不能覆盖所有的未知示例,故可设置一条默认规则,由它处理未被规则集合覆盖的示例。

规则学习的优点有:

  • 与神经网络、SVM这样的黑箱模型比,规则学习具有更好的解释性,能使用户更加直观地对判别过程有所了解。
  • 数理逻辑具有极强的表达能力,绝大数人类知识都可通过数理逻辑进行简洁的刻画和表达
  • 逻辑规则的抽象描述在处理一些高度复杂的AI任务时具有显著的优势

15.2 序列覆盖

序列覆盖是指:在训练集上,每学到一条规则,就将该规则覆盖的训练样例去除,然后剩下的训练样例组成训练集重复以上过程

产生规则的策略

自顶向下
从比较一般的规则开始,逐渐添加新文字以缩小规则覆盖范围,直到满足预定条件为止;也称为生成-测试,是规则逐渐特化的过程;更容易产生泛化性能较好的规则,对噪声的鲁棒性比后者强得多,常用于命名规则。

自底向上
从比较特殊的规则开始,逐渐删除文字以扩散规则覆盖范围,直到满足条件为止。亦称数据驱动方法,是规则逐渐泛化的过程;更适合训练样本较少的情形。常用于一阶规则学习。

15.3 剪枝优化

剪枝优化的目的是缓解过拟合风险,方法有预剪枝,后剪枝。

后剪枝最常用策略是减错剪枝(REP),其基本做法是:

将样例集分为训练集和验证集,从训练集上学得规则集后进行多轮剪枝,在每一轮穷举所有可能的剪枝操作,然后用验证集对剪枝产生的所有候选规则进行评估,保留最好的那个规则集进行下一轮剪枝,如此继续,直到剪枝不能在验证集上提高i效果为止。

REP剪枝通常很有效,但其复杂度是 O ( m 4 ) O(m^4) O(m4),m为训练样例数目。

IREP(Incremental REP)将复杂度降到 O ( m l o g 2 m ) O(mlog^2m) O(mlog2m),其做法是:
在生成每条规则前,先将当前样例集划分训练集和验证集,在训练集上生成一条规则r,立即在验证集上对其进行REP剪枝,得到规则r’,将其覆盖的样例删掉,在更新后的样例集上重复上述过程。

RIPPER算法:
西瓜书学习笔记——第十五章:规则学习_第2张图片

15.4 一阶规则学习

当超越了命题逻辑的表达能力,需要用一阶逻辑表示,并且要使用一节规则学习。

一阶规则有强大的表达能力,能简洁地表达递归概念,如在这里插入图片描述
同时,一阶规则学习很容易引入领域知识

FOIL算法

FOIL是著名的一阶规则学习算法,它遵循序贯覆盖框架且采用自顶向下的规则归纳策略,与命题规则学习过程类似。由于逻辑变量的存在,FOIL算法在 规则生成时需要考虑不同的变量组合。

使用FOIL增益来选择文字:
在这里插入图片描述

FOIL可大致看作命题规则学习与归纳逻辑程序设计之间的过渡,其自顶向下的规则生成过程不能支持函数和逻辑表达式嵌套,因此规则能力仍有不足;但它是把命题规则学习过程通过变量替换等操作直接转化为一阶规则学习,因此比一般归纳逻辑程序设计技术更高效。

15.5 归纳逻辑程序设计

归纳逻辑程序设计在一阶规则学习中引入了函数和逻辑表达式嵌套:

  • 使得机器学习系统具备了更为强大的表达能力
  • ILP可看作用机器学习技术来解决基于背景知识的逻辑程序归纳,其学得的规则可被PROLOG等逻辑程序设计语言直接使用。

归纳逻辑程序设计采用自底向上的规则生成策略,直接将一个或多个正例所对应的具体事例作为初始规则,再对规则进行逐步泛化以增加其对样例的覆盖率。

你可能感兴趣的:(西瓜书学习笔记)