当前位置: 首页 > news >正文

周志华《机器学习导论》第 15 章 规则学习(符号主义学习)

目录

1. 基本概念

2. 序贯覆盖

3. 剪枝优化

3.1 预剪枝:早停指标

3.2 后剪枝 -- REP \ IREP \ IREP* \ RIPPER

4. 一阶规则学习

5. 归纳逻辑程序设计 ILP

5.1 最小一般泛化 LGG

5.2 逆归结


1. 基本概念

“规则学习" (rule learning)是从训练数据中学习出一组 能用于对未见示例进行判别的规则。

数理逻辑简洁地刻画和表达,例如 “父亲的父亲是爷爷” 这样的知识不易用函数式描述,

而用一阶逻辑则可方便地写为 “爷爷(X,Y) ← 父亲 (X,Z) ∧ 父亲(Z,Y)”

比如下面两条定义什么可以推出是好瓜 or 不是好瓜:

  • 规则 1: 好瓜 ← (根蒂 = 蜷缩) ∧ (脐部 = 凹陷);
  • 规则 2: ¬ 好瓜 ← (纹理 = 模糊) .

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

规则集合中的每条规则都可看作一个子模型,规则集合是这些子模型的一个集成

当同一个示例被判别结果不同的多条规则覆盖时,称发生了“冲突”,

        需要进行 “冲突消解”

        投票法、排序法(按照排在前面的规则)、“元规则法”(定义规则如何使用的规则)

逻辑连接词(与、或、非、蕴含)

命题规则 or 一阶规则:由【原子命题 or 原子公式】和 逻辑连接词 构成的简单陈述句。

若规定 “自然数(X)” 表示 X 是自然数,σ(X) = X+1;

那么“所有自然数加1 都是自然数” 可写为,

2. 序贯覆盖

规则学习的目标:产生一个能覆盖尽可能多的样例的规则集。

“序贯覆盖”:在训练集上每学到一条规则,就将该规则覆盖的训练样例去除,继续学。

产生一条规则就是寻找最优的一组逻辑文字来构成规则体,这是一个搜索问题

自底向上(特殊到一半):从单个样本,删除文字扩大规则覆盖范围。(适合少样本)

自顶向下(一般到特殊):从比较一般的规则,添加文字缩小覆盖范围。(泛化性更好、噪声鲁棒性)

先加一个规则,覆盖正例 / 覆盖总数 = 准确率,每轮准确率最高的,

再进入下一轮加下一条规则,直到覆盖都是正例。

搜索过程贪心,容易局部最优 -> 可用 beam search 束搜索。

(每轮就选准确率前 k 高的组合)

规则生成过程中涉及一个评估规则优劣的标准:

        可以用 (规则准确率、信息增益率、覆盖样例数、属性次序)等等。

3. 剪枝优化

贪心搜索 过拟合 / 没得到全局最优解。(类似决策树 需要剪枝)

3.1 预剪枝:早停指标

如 CN2 算法设置,LRS 比较大停止继续向下搜索规则。

似然率统计量 Likelihood Ratio Statistics LRS:

衡量了规则(集)覆盖样例的分布 与 训练集经验分布的差别。

LRS 越大,用 “规则集预测” 相比于按照 “原正反例比例猜测” 效果越好。

3.2 后剪枝 -- REP \ IREP \ IREP* \ RIPPER

“Reduced Error Pruning” 减错剪枝 REP

训练集上学得规则集 R 后进行多轮剪枝,穷举所有剪枝操作,

再在验证集评估 所有候选规则集,保留最好的进下一轮剪枝。(但是穷举复杂度太高)

I(Incremental)REP

相比 REP 生成完规则后再进行后剪枝;IREP 每生成一条规则后都剪枝一下。(时间复杂度降低)

IREP* :评判指标替换  取代了之前的准确率。

分母是当前集合总样本数,

分子为 规则覆盖的正例 + 未被规则覆盖的负例(乐观的认为他们后面会被判为正例)。

好处:原来的 “正确率” 负例太敏感,即使覆盖了很多正例,包含一些负例惩罚力度太大。

减少了 “过度剪枝”,并且全局视野,把剩下的样本交给后面的规则做。

IREP的问题:剪枝后,将这条规则覆盖的实例从训练集中移除

这种 “立即移除” 的策略使得算法对数据分割的顺序非常敏感,容易陷入局部最优

RIPPER:对规则集 R 中的每条规则 ri,产生两个变体。

替换规则 r1:基于 ri 覆盖的样例,用 IREP* 重新生成 r1。

修订规则 r2:ri 增加文字进行特化,用 IREP* 剪枝生成 r2。

比较原始的 R 和 (用r1换r后的 R' )(用r2换r后的 R'' );保留三者中的最优。

4. 一阶规则学习

关系信息很重要,比如挑西瓜,我们不知道多绿才算“色泽青绿”,

我们会将西瓜进行相互比较,例如,“瓜 1 的颜色比瓜2 更深”

也会得到,X 和 Y 满足 *** 比较条件则,X 比 Y 更好 / 更差。

FOIL(First-Order Inductive Learner)

与命题规则学习类似,满足 更好(X,Y) 的为一阶规则覆盖的正例。

增加文字时,类似序贯覆盖,指标使用 FOIL 增益。

F_Gain = 新规则覆盖的正例数 * 新旧规则正例比例差异

5. 归纳逻辑程序设计 ILP

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

在一阶规则学习中引入了函数和逻辑表达式嵌套

自底向上,从特殊泛化到一般

5.1 最小一般泛化 LGG

寻找两条规则的 LGG:

因为两个都是 1,一个是 10 一个是 15,把 10 和 15 都换成 Y。

并且 “声音更沉” 这个谓词不是交集,所以删除。

同理,如果再加一条规则;对应比较的两个都不同,都替换。

5.2 逆归结

归纳:特殊到一般; 演绎:一般到特殊。

很多损伤 -> 人对表不经心;      表名贵 + 人对表不经心 -> 人不谨慎

 可对应真值表。

四种完备的逆归结操作;上面的可推出下面。

Prolog 示例,描述家庭成员关系;

由父母,性别;进一步定义什么是 祖父母,女儿等等。

http://www.dtcms.com/a/585724.html

相关文章:

  • 使用pycharm自带debug模式运行flask时报错
  • 福州做网站需要多少钱懒设计app
  • Dify 安全架构设计
  • 网站推广国外网站建设素材库
  • Rust 练习册 :Pythagorean Triplet与数学算法
  • 构建一个短链接生成器服务(FastAPI + SQLite)
  • 基于SpringBoot智慧社区系统/乡村振兴系统/大数据与人工智能平台
  • 做网站的公司跑了wordpress 首页显示产品
  • BLDCPMSM电机控制器硬件设计工程(八)72V 10kW电机控制器原理图工程及库文件
  • 西宁的网站建设公司怎样建立网站的快捷方式
  • MATLAB基于IOWGA算子的最优组合预测模型及应用
  • HarmonyOS Web组件深度解析:构建高性能JavaScript交互的实践与创新
  • 华为OD机试双机位A卷 - 竖直四子棋 (JAVA Python C++ JS GO)
  • Qt C++:跨平台开发利器
  • 愿景 做中国最受欢迎的互联网网站阿里云建站论坛网站
  • HotpotQA:推动多跳推理问答发展的标杆数据集
  • 【开题答辩全过程】以 二手家电回收平台的设计与实现为例,包含答辩的问题和答案
  • 图论基础概念
  • Doris支持的数据导入方式
  • 【SpringCloud(10)】Alibaba旗下微服务开发:Nacos注册中心和配置中心使用、安装Nacos、Nacos部署、集群部署
  • Font Awesome 文件类型图标
  • 细说 ASP.NET控制HTTP缓存
  • 高新区网站建设 意义搜索大全搜索引擎
  • S32K146 -CAN(FlexCAN)收发-经验教训
  • MCU学习Day24——STM32G030多路ADC DMA采集深度解析:完全可配置序列器与不完全可配置序列器的陷阱与抉择
  • dedecms 网站栏目管理寺庙网站素材
  • 东莞网站建设seo优化办公室现代简约装修效果图
  • 服务间通信模式
  • 如何用Python实现飞机大战小游戏
  • 做注塑机的网站wordpress导出出错