基本概念

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

形式化定义规则

  • 左侧称为规则头
  • 右侧称为规则体
  • L为规则的长度
  • 又叫if-then规则

规则冲突

冲突定义:一个示例被判别结果不同的多条规则覆盖;

解决方法:

  • 投票法:判别相同的规则数最多的结果作为最终结果
  • 排序法:在规则集合上定义一个顺序->带序规则学习/优先级规则学习
  • 元规则法:定义关于规则的规则(元规则)来指导使用规则集

规则分类

  • 命题规则:原子命题+逻辑连接词
  • 一阶规则:原子公式,谓词、量词

一阶规则比(逻辑规则)强很多,能表达复杂的关系,称为关系型规则,其语义层面与人类的语义层面一致。

序贯覆盖

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

关键:如何从训练集学出单条规则

学习规则的方法

基于穷尽搜索的方法

从空规则开始,将正例类别作为规则头,逐个遍历训练集中的每个属性及取值。\ 
在属性和候选值较多时会存在组合爆炸的问题。

自顶向下

  • 从比较一般的规则开始,逐条添加新文字以缩小规则覆盖范围
  • 生成-测试法
  • 规则逐渐特化
  • 覆盖范围从大到小
  • 对噪声的鲁棒性较强,适用于命题规则学习
  • 先考虑规则的准确性,然后考虑覆盖的样本数,然后考虑属性次序等等

自底向上

  • 从比较特殊的规则开始,逐渐删除文字以扩大规则覆盖范围
  • 数据驱动法
  • 规则逐渐泛化
  • 适合于训练样本较少
  • 适用于假设空间较复杂的任务,如一阶规则学习

评价规则优劣的标准(根据具体任务情况设计适当的标准):

以书中西瓜集合为例:

1、先考虑规则准确率(准确率=n/m。n:规则覆盖的正例数,m:覆盖的样例总数)
 
2、准确率相同时,考虑覆盖样例数,
 
3、准确率、覆盖样例数都相同时考虑属性次序。

剪枝优化

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

  • 预剪枝:剪枝可发生在规则生长过程中;
  • 后剪枝:也可发生在规则产生后;

通常是基于某种性能度量指标来评估增/删逻辑文字前后的规则性能,或增/删规则前后的规则集性能,从而判断是否要进行剪枝。

统计显著性检验

CN2——似然率统计量LRS,采用集束搜索,最早考虑过拟合的规则学习方法。

  • LRS越大,采用规则集进行预测与直接使用训练集正、反例比例进行猜测的差别越大。
  • LRS越小,规则集的效果越可能是偶然现象。

后剪枝

减错剪枝REP

  • 一次训练集学习规则集R
  • 多轮剪枝:每轮穷举所有可能的简直操作,然后用验证集对剪枝产生的所有候选规则集进行评估,保留最好者
  • 循环多次
  • 设训练样本数为m,时间复杂度O(m4)

IREP(Incremental REP)

  • 在REP上改进
  • 每次生成一条规则r立即在验证集上进行剪枝得到规则r′,并将覆盖样例去除
  • 时间复杂度O(mlog2m)

RIPPER(预剪枝+后处理优化)

  1. 使用IREP*剪枝机制生成规则集R
  2. 对r∈R,生成: 
    • r′:基于r的覆盖样例,通过IREP*生成的替换规则
    • r′′:对r增加文字进行特化,然后IREP*生成的修订规则
  3. 将原规则集(r)和新规则(替换为r'和r'')分别进行评估,留下最好的
  4. 循环上述过程

一阶规则学习

命题规则学习的缺陷:难以处理对象之间的关系。

引入领域知识

  • 属性重构:在现有属性基础上构造新的属性
  • 函数约束:基于领域知识设计某种函数机制约束假设空间

First-Order Inductive Learner(FOIL)

  • 遵循序贯覆盖,采用自顶向下(泛化到特化的过程)的规则归纳策略;

FOIL增益

  • m^+和m^-分别表示增加候选文字后新规则所覆盖的正负样本数
  • m+和m-分别表示原本规则所覆盖的正负样本数
  • 因为关系数据中的不平衡性,仅考虑正例的信息量

FOIL可以被看做是命题规则学习和归纳逻辑程序设计之间的过渡,但其自顶向下的规则生成过程不支持嵌套,所以表达能力仍有不足。

归纳逻辑程序设计(Inductive Logic Programming,ILP)

  • 目标:完备的学习一阶规则
  • 自底向上——特化到泛化的过程,每次学习单条规则
  • 与普通一阶规则学习相比引入了函数和逻辑表达式的嵌套

最小一般泛化(Least General Generalization,LGG)

  • 给定一阶公式r1和r2
  • 找出涉及相同谓词的文字
  • 常量替换 
    • 在两个公式中出现位置相同——保持
    • 不同则将它们替换为同一个新变量
  • 忽略两条公式中不含共同谓词的文字
  • R(elative)LGG:初始规则选择方法,考虑所有背景知识。

逆归结

演绎(Deduction)和归纳(Induction)

  • 演绎:从一般性规律出发来探讨具体事物(对应特化)
  • 归纳:从个别事物出发概括出一般性规律(对应泛化)

归结和逆归结

  • 归结:将貌似复杂的逻辑规则与背景知识联系起来化繁为简
  • 逆归结:基于背景知识发明新的概念和关系

逆归结形式化定义

逆归结的四种操作

(×)一阶逻辑中利用合一操作搜索互补项:自动发明新谓词

思维导图

转载自:https://blog.csdn.net/liuyan20062010/article/details/72842021

机器学习.周志华《15 规则学习 》相关推荐

  1. 机器学习(周志华) 参考答案 第十四章 概率图模型 14.9

    机器学习(周志华西瓜书) 参考答案 总目录 http://blog.csdn.net/icefire_tyh/article/details/52064910 机器学习(周志华) 参考答案 第十四章 ...

  2. 机器学习 周志华 第一章课后习题

    机器学习 周志华 第一章课后习题 1.1 1.2 1.3 1.4 1.5 1.1 在下面这张图片中若只包含编号为1和4的两个样例,试给出相应的版本空间. 书上实例: 1.表 1.1 对应的假设空间如下 ...

  3. 机器学习 周志华 课后习题3.5 线性判别分析LDA

    机器学习 周志华 课后习题3.5 线性判别分析LDA 照着书上敲了敲啥都不会,雀食折磨 python代码 # coding=UTF-8 from numpy import * # 我安装numpy的时 ...

  4. 小吴的《机器学习 周志华》学习笔记 第二章 模型评估与选择

    小吴的<机器学习 周志华>学习笔记 第二章 模型评估与选择 上一周我们介绍了第一章的基础概念,这一次将带来第二章的前三节.后面的2.4 比较检验与2.5 偏差与方差,涉及概率论与数理统计概 ...

  5. 小吴的《机器学习 周志华》学习笔记 第一章 绪论

    小吴的<机器学习 周志华>学习笔记 第一章 绪论 近一年时间接触到不少机器学习的知识,虽然断断续续学了一些,总感觉还没有入门(只学会了疯狂调包).因此,最近开始系统学习Machine Le ...

  6. 小吴的《机器学习 周志华》学习笔记 第二章 2.4 比较检验、2.5 偏差与方差

    小吴的<机器学习 周志华>学习笔记 第二章 2.4 比较检验. 2.5 偏差与方差 2.4 比较检验 上一周提到了实验的评价方法和性能量度,步骤简单可以看成:先使用某种实验评估方法测得学习 ...

  7. 机器学习-周志华-学习记录-第一章绪论

    文章目录 绪论 一.什么是机器学习 二.基本术语 三.假设空间 四.归纳偏好 总结 参考链接 绪论 为了更早地适应研究生的生活,我决定重新学习周志华老师的机器学习这本书.同时也为了能够养成博客记录的习 ...

  8. 机器学习-周志华教授

    机器学习 南京大学周志华教授网课视频:https://www.xuetangx.com/learn/nju0802bt/nju0802bt/14363483/video/26163027 202210 ...

  9. 西瓜书入门辅助【机器学习 周志华】一些关于机器学习的重要基础概念提炼

    周志华. 机器学习 = Machine Learning. 清华大学出版社, 2016. Print. 文章目录 周志华. 机器学习 = Machine Learning. 清华大学出版社, 2016 ...

  10. 机器学习(周志华) 习题 参考答案 第十三章

    周志华老师的<机器学习>的第13章的习题答案较少,只找到了三篇,分别为链接一和链接二,这两篇文章有几乎所有题目的个人解答.第三个人只对部分题目进行了解答,相关链接将放在题目下方. 以下是个 ...

最新文章

  1. 如何运行具有奇点的NGC深度学习容器
  2. 静态库与动态库详细剖析
  3. Spring-redis基础配置
  4. centos 打包某个目录_Linux目录基础,带你了解Linux神秘面纱
  5. linux fork, system, exec()
  6. css命名_CSS命名约定将节省您的调试时间
  7. jap sql 保存_【hibernate spring data jpa】执行了save()方法 sql语句也执行了,但是数据并未插入数据库中...
  8. 15个SaaS问答(图文并茂版)
  9. ViewBag ViewData
  10. Java学习日报—消息队列—2021/11/23
  11. 一文读懂 Java 工程师学习路线!
  12. hadoop的安装需要java_Hadoop windows本地环境安装
  13. Glib2之定义手册(十八)
  14. Linux企业级项目实践之网络爬虫(27)——多路IO复用
  15. translator什么意思中文_translator是什么意思|translator的音标|translator的用法 - 英语词典...
  16. 使用UDP遇到的问题小结
  17. 计算机内存怎样清理,怎么样清理电脑内存 电脑清理内存方法【图文】
  18. 人民的名义关系可视化展示
  19. Unity用代码写一个Inspector里面能拉动的滑条
  20. Kaggle下载criteo数据集

热门文章

  1. 密码学-->buuctf49~60
  2. iphone手机配置qq邮箱服务器设置,在iPhone中如何设置qq邮箱
  3. 【小技巧】腾讯QQ——腾讯网迷你版弹窗
  4. 安装 Ubuntu 21.04 后必备的绝佳应用大合集(持续更新中)
  5. 个人网站有赞云支付接口申请方法
  6. 运算放大器的简要理解
  7. ASP常用服务器获取各类信息汇总
  8. H3C网络故障排除方法
  9. JAVA代码Review
  10. 常微分方程——一阶微分方程的初等解法