机器学习(MACHINE LEARNING) 【周志华版-”西瓜书“-笔记】 DAY15-规则学习

15.1.规则学习

“规则学习” (rule learning)是从训练数据中学习出一组能用于对未见示例进行判别的规则。 形式上一般为:
在这里插入图片描述
式子中,右边的部分称为规则体(Body),表示该条规则的前提,由一系列逻辑文字(Literal)fkf_kf
k

组成的合取式,合取符号⋀\bigwedge⋀表示“并且”。左边的部分称为 逻辑头(Head),表达该条规则的结果,也是逻辑文字,一般用来表示规则所判定的目标类别或概念。
  规则集合中的每条规则都可看作一个子模型,规则集合是这些子模型的一个集成。当同一个示例被判别结果不同的多条规则覆盖时,称发生了"冲突" (conflict),解决冲突的办法称为 “冲突消解” (conflict resolution)。常用的冲突消解策略有投票法、排序法、元规则法等。

从形式语言表达能力而言,规则可以分为两类:
命题规则(Propositional rule):是由"原子命题" (propositional atom)和逻辑连接词"与"(⋀\bigwedge⋀)、“或”(V)、“非"和"蕴含” (←)构成的简单陈述句;
一阶规则(First-order rule):基本成分是能描述事物的属性或关系的"原子公式" (atomic formula)。

15.2序贯覆盖

规则学习的目标是产生一个能覆盖尽可能多的样例的规则集。最直接的做法是 “序贯覆盖”(sequential covering),即逐条归纳:在训练集上每学到一条规则,就将该规则覆盖的训练样例去除,然后以剩下的训练样例组成训练集重复上述过程。由于每次只处理一部分数据,因此也被称为"分治" (separate-and-conquer) 策略。
  但是这种基于穷尽搜索的做法在属性和候选值较多时会由于组合爆炸而不可行。现实任务中一般有两种策略来产生规则:
“自顶向下”(Top-down):即从比较一般的规则开始,逐渐添加新文字以缩小规则覆盖范围,直到满足预定条件为止;亦称为"生成-测试"(generate-then-test)法,是规则逐渐"特化" (specialization)的过程;
“自底向上”(Bottom-up):,即从比较特妹的规则开始,逐渐删除文字以扩大规则覆盖范围,直到满足条件为止;亦称为"数据驱动" (data-driven)法,是规则逐渐"泛化"(generalization)的过程。
  由于序贯覆盖法简单有效,几乎所有规则学习算法都以它为基本框架。它能方便地推广到多分类问题上,只需将每类分别处理即可:当学习关于第c类的规则时,将所有属于类别c的样本作为正例,其他类别的样本作为反例。

15.3剪枝优化

规则生成本质上是一个贪心搜索过程,需有一定的机制来缓解过拟合的风险,最常见的做法是剪枝(pruning)。与决策树相似,剪枝可发生在规则生长过程中,即"预剪枝"也可发生在规则产生后,即"后剪枝"通常是基于某种性能度量指标来评估增/删逻辑文字前后的规则性能,或增/删规则前后的规则集性能,从而判断是否要进行剪枝。
在这里插入图片描述

15.4一阶规则学习

受限于命题逻辑表达能力命题规则学习难以处理对象之间的"关系" (relation),而关系信息在很多任务中非常重要。因此需用一阶逻辑表示,并且要使用一阶规则学习。所谓一阶逻辑表示其实就是利用比较,将原来的单一的表示用比较的方式来描述,如花的颜色为淡红色,另一只花的颜色比第一只更红。

15.5归纳逻辑程序设计(ILP)

归纳逻辑程序设计(Inductive Logic Programmi, ILP) 在一阶规则学习中引入了函数和逻辑表达式嵌套。

发布了610 篇原创文章 · 获赞 140 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_43838785/article/details/104387347