15.1 基本概念

规则:机器学习中通常指语义明确、能描述数据分布所隐含的客观规律或领域概念、可写成“若…,则…”形式的逻辑规则。
规则学习(rule leaning):是从训练数据中学习出一组能用来对未见实例进行判别的规则。
形式化地看,一条规则形如:

规则学习的优势
(1)与神经网络、支持向量机这样的“黑箱模型”相比,规则学习具有更好的可解释性,能使用户更直观地对判别过程有所了解;
(2)规则学习能更自然地在学习过程中引入领域知识;
(3)逻辑规则的抽象描述能力在处理一些高度复杂的AI任务时具有显著的优势。

覆盖
符合规则的样本称为被该规则覆盖。

冲突:
规则集合中的每条规则都可看作一一个子模型,规则集合是这些子模型的一个集成。当同一个示例被判别结果不同的多条规则覆盖时,称发生了“冲突”(confict),解决冲突的办法称为“冲突消解”(conflict resolution).。

常用的冲突消解策略
(1)投票法:将判别相同的规则数最多的结果作为最终结果。
(2)排序法:在规则集合上定义一个顺序,在发生冲突时使用排序最前的规则,相应的规则学习过程称为“带序规则”(orderedrule)学习或“优先级规则”(priority rule)学习。
(3)元规则法:根据领域知识事先设定-些“元规则”(meta-rule),,即关于规则的规则,例如“发生冲突时使用长度最小的规则”,然后根据元规则的指导来使用规则集。

规则学习算法通常会设置一条“默认规则”(default rule),由它来处理规则集合未覆盖的样本。

从形式语言表达能力而言,规则可分为两类:
(1)“命题规则“(propositionalrule):由“原子命题”(propositionalatom)和逻辑连接词“与”(∧)、“或” (V)、“非” (﹁)和“蕴含”(←)构成的简单陈述句;
(2)“一阶规则”(first- order rule)/关系型规则(relational rule):基本成分是能描述事物的属性或关系的“原子公式”(atomic formula)。
从形式语言系统的角度看,命题规则是一阶规则的特例,一阶规则的学习要比命题规则复杂的多。

15.2 序贯覆盖

规则学习的目标:产生一个能覆盖尽可能多的样例的规则集。
最直接的做法:“序贯覆盖”(sequential covering),即逐条归纳:在训练集上每学到一条规则,就将该规则覆盖的训练样例去除,然后以剩下的训练样例组成训练集重复上述过程,由于每次只处理一部分数据,因此也被称为“分治”(separate and-conquer)策略

序贯覆盖法的关键:如何从训练集学出单条规则。

对规则学习目标⊕,产生一条规则就是寻找最优的一组逻辑文字来构成规则体,这是一个搜索问题。
最简单的做法是从空规则“⊕←”开始,将正例类别作为规则头,再逐个遍历训练集中的每个属性及取值,尝试将其作为逻辑文字增加到规则体中,若能使当前规则体仅覆盖正例,则由此产生一条规则,然后去除已被覆盖的正例并基于剩余样本尝试生成下一条规则。

现实任务中一般有两种策略来产生规则:
(1)“自顶向下”(top-down),即从比较一般的规则开始,逐渐添加新文字以缩小规则覆盖范围,直到满足预定条件为止;亦称为“生成-测试”(generate-then-test)法,是规则逐渐“特化”(specialization)的过程。
覆盖范围从大往小搜索规则,更容易产生泛化性能较好的规则。
(2)“自底向上”(bottom-up),即从比较特殊的规则开始,逐渐删除文字以扩大规则覆盖范围,直到满足条件为止;亦称为“数据驱动”(data driven)法,是规则逐渐“泛化”(generalization)的过程。

覆盖范围从小往大搜索规则,适合于训练样本较少的情形。前者对噪声的鲁棒性比后者要强得多。因此,在命题规则学习中通常使用第一种策略,而第二种策略在一阶规则学习这类假设空间非常复杂的任务上实用得多。

为了缓解陷入局部最优,“集束搜索”(beam search),:每轮保留最优的b个逻辑文字,在下一轮均用于构建候选集,再把候选集中最优的b个留待再下一轮使用。

15.3 剪枝优化

剪枝(pruning):规则生成本质上是一个贪心搜索过程,需有一定的机制来缓解过拟合的风险,最常见的做法是剪枝(pruning)。

与决策树相似,剪枝可发生在规则生长过程中,即“预剪枝”,也可发生在规则产生后,即“后剪枝”。通常是基于某种性能度量指标来评估增/删逻辑文字前后的规则性能,或增/删规则前后的规则集性能,从而判断是否要进行剪枝。

剪枝还可借统计显著性检验来进行:
方法:CN2算法[Clark and Niblett,1989]:在预剪枝时,假设用规则集进行预测必须显著优于直接基于训练样例集后验概率分布进行预测。
CN2使用了似然率统计量(LikelihoodRatio Statistics,简称LRS)。

这实际上是一种信息量指标,衡量了规则(集)覆盖样例的分布与训练集经验分布的差别:
LRS越大,说明采用规则(集)进行预测与直接使用训练集正、反例比率进行猜测的差别越大;
LRS越小,说明规则(集)的效果越可能仅是偶然现象。
在数据量比较大的现实任务中,通常设置为在LRS很大(例如0.99)时CN2算法才停止规则(集)生长。

后剪枝最常用的策略是“减错剪枝”(Reduced Error Pruning,简称REP):
其基本做法是:将样例集划分为训练集和验证集,从训练集上学得规则集R后进行多轮剪枝,在每一轮穷举所有 可能的剪枝操作,包括删除规则中某个文字、删除规则结尾文字、删除规则尾部多个文字、删除整条规则等,然后用验证集对剪枝产生的所有候选规则集进行评估保留最好的那个规则集进行下一轮剪枝,如此继续,直到无法通过剪枝提高验证集上的性能为止。
REP:复杂度是O(m^4)
IREP (Incremental REP) :复杂度O(mlog2m)
做法:在生成每条规则前,先将当前样例集划分为训练集和验证集,在训练集上生成一条规则r,立即在验证集上对其进行REP剪枝,得到规则r,将r覆盖的样例去除,在更新后的样例集上重复上述过程。
REP是针对规则集进行剪枝,而IREP仅对单条规则进行剪枝,因此后者比前者更高效。

规则学习算法RIPPER:

RIPPER中的后处理机制是为了在剪枝的基础上进一步提升性能。对R中的每条规则ri,,RIPPER为它产生两个变体:

RIPPER 的后处理优化过程将冗中的所 有规则放在一起重新加以优化,恰是通过全局的考虑来缓解贪心算法的局部性, 从而往往能得到更好的效果。

15.4 一阶规则学习

关系数据:直接描述样例间的关系。
背景知识:由原样本属性转化而来的“色泽更深”“根蒂更蜷”等原子公式。

现实任务中并非 所有的领域知识都能容易地通过属性重构和函数约束来表达。

由样本类别转化而来的关于“更好”“﹁更好”的原子公式。
FOIL (First-Order Inductive Learner) :是著名的一阶规则学习算法,它遵循序贯覆盖框架且采用自顶向下的规则归纳策略。

FOIL 增益与决策树使用的信息增益不同,它仅考虑 正例的信息量,并且用新规则覆盖的正例数作为权重。

FOIL使用“FOIL增益”(FOIL gain)来选择文字:

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

15.5 归纳逻辑程序设计

归纳逻辑程序设计(Inductive Logic Programming,简称ILP):在一阶规则学习中引入了函数和逻辑表达式嵌套一方面,这使得机器学习系统具备了更为强大的表达能力;另一方面,ILP可看作用机器学习技术来解决基于背景知识的逻辑程序(logic program)归纳,其学得的“规则”可被PROLOG等逻辑程序设计语言直接使用。

15.5.1 最小一般泛化

归纳逻辑程序设计采用自底向上的规则生成策略,直接将一个或多个正例所对应的具体事实(grounded fact)作为初始规则,再对规则逐步进行泛化以增加其对样例的覆盖率。泛化操作可以是将规则中的常量替换为逻辑变量,也可以是删除规则体中的某个文字。

最小一般泛化(Least General Generalization,简称LGG) :用于将“特殊”规则转变为更“一般”的规则。

在归纳逻辑程序设计中,获得 LGG 之后,可将其看作单条规则加入规则集,最后再用前几节介绍的技术进一步优化。例如对规则集进行后剪技等.

15.5.2 逆归结

四种完备的逆归结操作,以规则形式p←q等价地表达pV﹁q,并假定用小写字母表示逻辑文字、大写字母表示合取式组成的逻辑子句:

归结、逆归结都能容易地扩展为一阶逻辑形式;与命题逻辑的主要不同之 处是,一阶逻辑的归结、逆归结通常需进行合一置换操作。

“置换”(substitution)是用某些项来替换逻辑表达式中的变量。

“合一”(unification)是用一种变量置换令两个或多个逻辑表达式相等。

逆归结的一大特点:能够自动发明新谓词,这些谓词可能对应于样例属性和背景知识中不存在的新知识,对知识发现与精化有重要意义。

在现实任务中, ILP系统通常先自底向上生成一组规则,然后再结合最小一般泛化与逆归结做进一步学习。

机器学习(西瓜书)15、规则学习相关推荐

  1. 周志华-机器学习西瓜书-第三章习题3.3 编程实现对率回归

    本文为周志华机器学习西瓜书第三章课后习题3.3答案,编程实现对率回归,数据集为书本第89页的数据 使用tensorflow实现过程 # coding=utf-8 import tensorflow a ...

  2. 小白学机器学习西瓜书-第三章对数几率回归

    小白学机器学习西瓜书-第三章对数几率回归 3.3 对数几率回归 3.3.1 对数几率函数 3.3.1 估计参数 上一部分我们介绍了线性回归,包括简单的二元回归和多元回归,这两个主要解决的是拟合预测的问 ...

  3. 机器学习西瓜书(周志华)第七章 贝叶斯分类器

    第七章 贝叶斯分类器 1. 贝叶斯决策论 1.1 先验分布 1.2 后验分布 1.3 似然估计 1.4 四大概率在贝叶斯分类中指代含义 1. 朴素贝叶斯 7. 课后练习参考答案 1. 贝叶斯决策论 贝 ...

  4. 机器学习西瓜书-1-2章

    学习目标: 概览机器学习西瓜书 1.2章 学习内容: 第一章 绪论 1.1 基本术语 1.2 假设空间 1.3 归纳偏好 1.4 发展历程 第二章 模型评估与选择 2.1 经验误差与过拟合 2.2 评 ...

  5. 机器学习西瓜书南瓜书 神经网络

    机器学习西瓜书&南瓜书 神经网络 1. 神经元模型 神经网络:由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实事件物体所做出的交互反应. 神经网络最基本的成分 ...

  6. 机器学习-西瓜书、南瓜书第三章

    线性模型 基本形式 一.线性回归 回归任务最常用的性能度量是均方误差,因为均方误差有比较好的几何意义,对应了最常用的**"欧氏距离",最小二乘法就是基于均方误差进行模型求解的. 求 ...

  7. 机器学习-西瓜书第一、二章

    第一章:绪论 基本概念 数据集:所有数据的集合 训练集:训练样本的集合 属性(特征):某事物或对象在某方面表现的性质 属性值:属性的取值 属性空间/样本空间/输入空间:属性张成的空间 泛化能力:学得模 ...

  8. 【吃瓜教程】周志华机器学习西瓜书第三章答案

    线性模型结构梳理 3.1 试析在什么情形下式3.2中不必考虑偏置项b 答案一: 偏置项b在数值上代表了自变量取0时,因变量的取值: 1.当讨论变量x对结果y的影响,不用考虑b: 2.可以用变量归一化( ...

  9. 机器学习西瓜书学习——绪论

    在我们日常生活中,我们有时候会根据自己的生活经验,对即将发生的事进行预估.当我们有了足够多的经验,我们就可以对一些情况做出有效的决策.比如说"朝霞不出门 晚霞行千里",就是根据我们 ...

  10. [机器学习]西瓜书南瓜书学习(更新中)

    B站网课学习视频 南瓜书datawhale开源内容 南瓜书github开源内容 什么是机器学习 概念介绍 人工智能:让机器变得像人一样拥有智能的学科 机器学习:让计算机像人一样能从数据中学习出规律的一 ...

最新文章

  1. 2015: [Usaco2010 Feb]Chocolate Giving
  2. python不对字符串进行转义
  3. Android中的Fragment
  4. 如何快速清理docker资源
  5. c中嵌入Python,提供灵活性
  6. 詹金斯的Maven报告
  7. easyexcel设置下拉选项不能覆盖_Wi-Fi经常掉线 这个设置要修改
  8. GIPS语音编解码器家族
  9. (08)Verilog HDL同步复位
  10. java面向对象编程基础实验报告_20155313 实验三《Java面向对象程序设计》实验报告...
  11. Python 3.6部分新特性
  12. python字符串不可改变怎么理解_python的“不可变性”代表了什么?
  13. Java并发编程:线程的基本状态
  14. Es6模板字符串条件判断
  15. (2021年)iOS面试题及答案,以及添加Flutter 面试问题,Swift面试题
  16. 【操作系统概念-作业9】Virtual Memory
  17. ts封装,H264和aac 封装成为ts,并生成m3u8
  18. 【Mybatis】一二级缓存的源码研究
  19. php 正则 /is,PHP 正则表达式后面接的/isU, /is, /s含义
  20. 迅为LS2k1000龙芯国产双核开发板烧写系统到 U 盘

热门文章

  1. Hive数据仓库建模
  2. 打开phpMyAdmin 502 Bad Gateway
  3. NBUT 1635 Explosion(最小顶点覆盖)
  4. 最大子矩阵和问题(“九韶杯” 最强对手矩阵、AW的西瓜田)
  5. Hbase API应用 表/列 链接diea增删改查
  6. JAVA之JDBC连接数据库
  7. 2020-10-18 今天来说说如何爬取猫眼上的电影信息
  8. 2017 数学建模 国赛(高教杯)-B题 “拍照赚钱”的任务定价
  9. html与网页设计 实践课,网页设计与制作实践课期末考试
  10. iOS测试软件砸壳,ios app 砸壳(示例代码)