# Ml Rule Learning

> 需要"人能读懂"的 if-then 规则模型的适用判断与方法路线。用户说"要可解释的规则/if-then 规则挖掘/rule learning/FOIL"、纠结命题够不够、或规则集训练完美却频繁触发默认规则时激活。 动作: 确认可解释是硬需求→数据是属性值还是对象间关系(命题 vs 一阶)→搜索方向: 自顶向下 泛化好抗噪强 vs 自底向上适合小样本与一阶空间→剪枝+RIPPER式后处理防贪心锁死。 不适用于: 无可解释需求的精度优先任务、购物篮关联规则分析。 trigger: rule learning, if-then rules, FOIL, sequential covering, 序贯覆盖, 可解释规则, 一阶规则, ILP。

- Skill: `fieldlu/ml-rule-learning` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add fieldlu/ml-rule-learning`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fieldlu/ml-rule-learning/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: fieldlu (https://skillmd.com/u/fieldlu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fieldlu/ml-rule-learning

---


# 规则学习 — 当模型必须"讲得出道理"时的逻辑规则路线

## R — 原文 (Reading)

> "与神经网络、支持向量机这样的'黑箱模型'相比，规则学习具有更好的可解释性，能使用户更直观地对判别过程有所了解。……逻辑规则的抽象描述能力在处理一些高度复杂的 AI 任务时具有显著的优势。"
>
> — 周志华, 《机器学习》第15章 15.1节 "基本概念"

> "前者通常更容易产生泛化性能较好的规则，而后者则更适合于训练样本较少的情形，此外，前者对噪声的鲁棒性比后者要强得多。"
>
> — 周志华, 《机器学习》第15章 15.2节 "序贯覆盖"（自顶向下 vs 自底向上）

> "最初生成 R 的时候，规则是按序生成的，每条规则都没有对其后产生的规则加以考虑，这样的贪心算法本质常导致算法陷入局部最优。"
>
> — 周志华, 《机器学习》第15章 15.3节 "剪枝优化"

---

## I — 方法论骨架 (Interpretation)

规则学习产出的是一组"若……则……"的逻辑规则：语义明确、能描述数据隐含的客观规律，用户能直观看清判别过程——这是它与黑箱模型的根本分野。但可解释不是免费的，整条路线由四个决策串起来。

**决策一：真的需要规则吗？** 若可解释性/合规审计/领域知识注入是硬需求，规则路线成立；若只是精度优先且没人读模型，黑箱往往更强。

**决策二：命题还是一阶？** 命题规则检验单个对象的属性值（色泽=乌黑），表达力够用且学习简单；一旦任务本质是对象之间的关系（"瓜1比瓜2更好"、"父亲的父亲是爷爷"），命题逻辑就到了天花板，必须上一阶规则（带谓词和变量的关系型规则），代价是学习复杂度陡增。

**决策三：搜索方向。** 自顶向下从一般规则出发逐文字特化（生成-测试），覆盖范围从大往小：容易产生泛化好的规则、抗噪强得多，是命题规则学习的默认；自底向上从特殊事实出发逐文字泛化（数据驱动）：适合小样本与一阶逻辑这类假设空间极复杂的任务。方向选错会系统性吃亏。

**决策四：防过拟合与防贪心。** 规则生成本质是贪心搜索，须配剪枝（预剪枝如 CN2 的似然率显著性检验；后剪枝如 REP/IREP）；更进一步，RIPPER 式后处理把整个规则集放在一起重新优化（替换/修订规则再全局比较）——因为序贯覆盖逐条生成时前面的规则完全不知道后面会长什么样，只有全局重看才能缓解局部最优。

---

## A1 — 书中的应用 (Past Application)

### 案例 1: 西瓜数据集5.0——关系数据逼出一阶规则 (c35)
- **问题**: 现实中挑西瓜很难给绝对阈值——"色泽看起来多深才叫青绿？敲声多低才叫沉闷？"属性值描述失灵，人实际靠相互比较："瓜1的颜色比瓜2更深、根蒂比瓜2更蜷，所以瓜1更好"。这已超越命题逻辑的表达能力。
- **方法论的使用**: 作者把西瓜数据集2.0转化为表15.1的关系数据集5.0——定义六条序关系背景知识（乌黑>青绿>浅白等），样例改写为对象间比较的事实；然后用 FOIL（序贯覆盖框架 + 自顶向下归纳）在关系数据上学"更好(X,Y)"概念，以 FOIL 增益选择候选文字——它只用正例的信息量并以新增正例数为加权，因为关系数据中正例远少于反例。
- **结论**: 学得"(∀X,∀Y) 更好(X,Y)←根蒂更蜷(X,Y)∧脐部更凹(X,Y)"这样的一阶规则；FOIL 还能表达递归概念（更好(X,Y)←更好(X,Z)∧更好(Z,Y)），这是命题规则原则上写不出的。
- **结果**: 该案例确立"关系信息 → 必须一阶"的判定模板，并演示了 FOIL 作为命题与归纳逻辑程序设计(ILP)之间过渡桥梁的定位——比一般 ILP 高效，但不能支持函数与表达式嵌套。

### 案例 2: 逆归结自动发明新谓词 q (c36)
- **问题**: 已有两条规则 C1（更好←根蒂更蜷∧纹理更清）与 C2（更好←根蒂更蜷∧敲声更沉），能否从背景知识中归纳出背景里不存在的新概念？
- **方法论的使用**: 作者使用逆归结的内构操作(intra-construction)：创造新二元谓词 q(M,N)，对 C1、C2 做归结得到新规则 C′=更好(1,Z)←根蒂更蜷(1,Z)∧q(M,N)，两个归结商分别为 q(1,S)←纹理更清(1,S) 与 q(1,T)←敲声更沉(1,T)；按奥卡姆剃刀原则在等价解中选择使规则更少的分支。
- **结论**: 逆归结的一大特点是能自动发明新谓词——对应样例属性和背景知识中不存在的新知识，对知识发现意义重大；但 q 究竟意味着"更新鲜""更甜"还是"更多日晒"，语义只能由使用者结合领域进一步理解来确定。
- **结果**: 演算同时展示了 ILP 的知识发现能力和它的解释责任：机器发明概念，人来赋予意义——自动化与领域理解不可偏废。

---

## A2 — 触发场景 (Future Trigger) ★

### 用户会在什么情境下需要这个 skill?

1. 用户被要求交付可审计模型（医疗、信贷风控、工业质检、合规场景），明确说"这个模型必须能向监管/客户解释每个判断"。
2. 用户想把专家经验形式化成规则库，或反过来想从数据里挖出规则供专家审阅修订。
3. 用户的数据本质是对象间关系（社交网络亲属链、分子结构、零件装配关系），属性-值表格表达不了，纠结要不要上 ILP。
4. 用户跑完规则归纳（RIPPER/FOIL/WEKA JRIP），发现规则集训练集近乎完美、新样本却频繁落进默认规则，怀疑学歪了。
5. 用户问"关联规则和分类规则什么关系"、"Apriori 挖出来的规则能不能直接当分类器"。

### 语言信号 (用户的话里出现这些就应激活)

- "**要可解释的规则**" / "模型必须**能解释**" / "if-then **规则挖掘**" / "interpretable rules"
- "**rule learning**" / "**FOIL**" / "**RIPPER**" / "序贯覆盖 sequential covering" / "JRIP"
- "命题规则还是**一阶规则**" / "关系型规则" / "**ILP** 归纳逻辑程序设计"
- "**关联规则**和分类**规则**" / "规则**冲突**怎么消解" / "默认规则 default rule"

### 与相邻 skill 的区分

- 与 `ml-task-matching` 的区别: 那是通用算法选型的第一站（NFL 任务匹配视角）；本 skill 是已锁定"可解释规则"这一需求后的专业深潜。用户还在犹豫"要不要规则模型 vs 黑箱"→ 先走选型；已确定要规则、问怎么做对 → 本 skill。
- 与 `ml-diagnosis` 的区别: 规则集表现异常（默认规则高频触发、训练完美泛化差）在本 skill 内按贪心/剪枝机制归因处置；若症状超出规则特有范畴（如验证协议本身可疑）→ 移交诊断流程。
- 与 `ml-graphical-models` 的区别: 同为"白盒"路线，规则系统是确定性逻辑（真/假、无不确定性量化），概率图处理带不确定性的软依赖；需要概率置信输出 → 图模型，需要硬规则审计 → 本 skill。
- 与 `ml-ensemble-design` 的区别: 规则集本身就是子模型的集成（冲突消解=集成决策），投票法等消解策略与集成的思想同源；但本 skill 的核心增量在规则特有的生成-剪枝-后处理管线，通用集成设计在那边。

---

## E — 可执行步骤 (Execution)

当 skill 被激活后, agent 应按以下步骤执行:

1. **确认可解释性是硬需求**
   - 问清用途：模型输出是否会被人类审阅/申诉/审计？是否有合规条款禁止黑箱？
   - 完成标准: 写出"可解释需求等级"判定（硬性合规 / 业务偏好 / 仅口头提及）。
   - **判停条件**: 若仅口头提及而实际只看精度 → 提示黑箱模型常更准，建议重新考虑，用户坚持后才继续。

2. **判定命题还是一阶**
   - 审查任务的语义单元：单对象属性-值即可刻画？还是必须表达对象间关系/递归概念？
   - 关系测试：能否写出所有判断为"属性 op 常量"的形式？若出现"A 比 B 更 X"这类二元关系 → 需要一阶。
   - 完成标准: 给出"命题够用 / 需一阶"判定及一个具体反例（若需一阶）证明命题表达不了。

3. **选定搜索方向**
   - 默认自顶向下（特化式，泛化好抗噪强，命题任务首选）；训练样本很少或一阶假设空间复杂 → 考虑自底向上（泛化式，从具体事实出发，配 LGG 最小一般泛化）；引入函数嵌套 → 进入 ILP 领域（自底向上 + 逆归结），慎入并评估维护成本。
   - 完成标准: 写出所选方向 + 样本量/噪声水平的支撑依据。

4. **生成与剪枝配置**
   - 单条规则生长时避免纯贪心（每轮仅取一个最优文字）：至少用集束搜索保留 b 个候选；剪枝方案按规模选——REP 效果好但 O(m⁴)，IREP/IREP* 降到近似线性，大数据集用 CN2 式统计显著性预剪枝（LRS 阈值调高如 0.99 才停生长）。
   - 完成标准: 输出包含搜索参数（b 值/评估准则）与剪枝策略的完整配置及理由。

5. **规则集级优化**
   - 参照 RIPPER 后处理：对每条规则产生替换规则与修订规则两个变体，连同原规则集全局重比择优；同时配置冲突消解策略（投票/排序/元规则）与默认规则兜底。
   - 完成标准: 交付的规则集经过规则集级优化，且冲突消解策略有书面定义。
   - **判停条件**: 若步骤 6 复核发现训练精度高但默认规则触发率异常高 → 回到步骤 3 检查贪心锁死与剪枝过度，调整后重跑。

6. **复核与验收**
   - 在独立验证集上报告覆盖率与准确率的联合表现（不能只报整体精度）；请领域专家抽审规则的语义合理性；检查是否存在"编号类高基数属性"混入规则体。
   - 完成标准: 输出"覆盖率×准确率×专家抽审意见"三维验收记录。

---

## B — 边界 (Boundary) ★

### 不要在以下情况使用此 skill

- 可解释性并非真需求、只求精度上限：规则学习的表达力弱于现代黑箱模型，强行换轨是拿性能换情怀。
- 数据是纯数值密集型且关系简单：一棵剪枝良好的决策树转出的规则可能已经够用，无需专门规则归纳管线。
- 用户想要的是购物篮关联规则（X→Y 支持度/置信度）：那是无监督模式发现，目标谓词不由人定；分类规则学习是有监督的目标驱动搜索，两者评估口径不同，别混用工具。

### 作者在书中警告的失败模式

- **贪心局部最优锁死（x49）**: 每轮只加"最优的一个文字"，第一步选偏整条规则跑偏——书中实例：b=2 的集束搜索能得到同样 100% 准确但覆盖 3 个正例（而非 1 个）的更好规则；序贯覆盖逐条生成、前面的规则不知后面长什么样，RIPPER 后处理正是为此设计的补丁。
- **规则冲突与覆盖缺口**: 多条规则同时覆盖同一示例会产生矛盾判别，必须预设消解策略（投票/排序/元规则）；属性数目多时规则集常无法覆盖所有未见示例，必须配默认规则兜底——没有兜底的规则集是不完整的交付物。
- **一阶逻辑的计算悬崖**: 引入函数与表达式嵌套后候选原子公式有无穷多个（P(f(f(X)))……），FOIL 式自顶向下直接失败；连 FOIL 增益所需的正反例计数都变得不可行——这是 ILP 必须转向自底向上 + LGG/逆归结的根本原因。
- **发明谓词的语义悬置（x49 关联坑/c36）**: 逆归结自动发明的新谓词 q 语义未知，"只能通过使用者对任务领域的进一步理解才能明确"——无人认领的新谓词是知识发现的成果也是定时炸弹。
- **FOIL 增益的正例偏向有其原因**: 关系数据中正例远少于反例，增益公式只计正例信息量并以新增正例数加权——把它当通用准则搬到均衡数据上会失配。

### 作者的盲点 / 时代局限 (2016 成书)

- 书中自承符号主义在全书仅此一章（阶段0批判：除 ILP 一笔带过外，神经符号结合缺席）；当代可解释 ML 的主流（SHAP/LIME 事后解释、单调约束模型、评分卡）未涵盖——"可解释"的实现路径比书中宽得多，规则学习只是其中确定性最强的一条。
- 规则学习在大数据上的规模化实践稀缺，RIPPER 时代的数据量级与现代工业数据差几个数量级，复杂度项（REP 的 O(m⁴)）在大数据下直接出局。
- 书中规则评估止步于覆盖率/准确率，未涉及规则稳定性（重采样后规则是否复现）——生产环境里不稳定的规则比不准更危险，验收时应补充。

### 容易混淆的邻近方法论

- **决策树**: 同为白盒模型；决策树强求把样本空间划分为互斥等价类，规则学习不强求这一点，因此"后者学得的模型能有更低的复杂度"——树转规则是一条捷径但不是规则学习的全部。
- **关联规则挖掘（Apriori 类）**: 无监督找频繁项集，支持度-置信度框架，目标变量不在设计中；分类规则学习是有监督、目标驱动的序贯覆盖，别拿购物篮工具干分类的活。
- **模糊规则/软规则**: 规则头带隶属度的变体，书中不覆盖；需要连续输出的"规则"时它不是本 skill 的对象。
- **专家系统手工规则**: 不经数据学习、纯人工编写；规则学习的价值恰在"从数据归纳"，两者可以互补（专家规则作初始规则集）但来源不同。

---

## 相关 skills

- contrasts-with: ml-task-matching（是否选规则路线的前置决策）, ml-graphical-models（确定性白盒 vs 概率白盒）
- composes-with: ml-diagnosis（规则集异常的通用诊断后备）, ml-ensemble-design（规则集即集成的思想同源、冲突消解与集成决策呼应）

---

## 审计信息

- **验证通过**: x49 在阶段1.5 判为"与 x41 重复主题、更低频场景"淘汰；c35/c36 判为"场景边缘化"淘汰——本 skill 属扩充批A·第2组新增（覆盖 ch15），为其提供归属；R 引文已逐字核对章节文本，B 段失败模式均出自原书明言
- **测试通过率**: 待阶段 3 测试 (详见 test-prompts.json)
- **skill_version**: 0.0.1
- **蒸馏时间**: 2026-08-24

