规则学习 — 当模型必须"讲得出道理"时的逻辑规则路线
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?
- 用户被要求交付可审计模型(医疗、信贷风控、工业质检、合规场景),明确说"这个模型必须能向监管/客户解释每个判断"。
- 用户想把专家经验形式化成规则库,或反过来想从数据里挖出规则供专家审阅修订。
- 用户的数据本质是对象间关系(社交网络亲属链、分子结构、零件装配关系),属性-值表格表达不了,纠结要不要上 ILP。
- 用户跑完规则归纳(RIPPER/FOIL/WEKA JRIP),发现规则集训练集近乎完美、新样本却频繁落进默认规则,怀疑学歪了。
- 用户问"关联规则和分类规则什么关系"、"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 应按以下步骤执行:
确认可解释性是硬需求
- 问清用途:模型输出是否会被人类审阅/申诉/审计?是否有合规条款禁止黑箱?
- 完成标准: 写出"可解释需求等级"判定(硬性合规 / 业务偏好 / 仅口头提及)。
- 判停条件: 若仅口头提及而实际只看精度 → 提示黑箱模型常更准,建议重新考虑,用户坚持后才继续。
判定命题还是一阶
- 审查任务的语义单元:单对象属性-值即可刻画?还是必须表达对象间关系/递归概念?
- 关系测试:能否写出所有判断为"属性 op 常量"的形式?若出现"A 比 B 更 X"这类二元关系 → 需要一阶。
- 完成标准: 给出"命题够用 / 需一阶"判定及一个具体反例(若需一阶)证明命题表达不了。
选定搜索方向
- 默认自顶向下(特化式,泛化好抗噪强,命题任务首选);训练样本很少或一阶假设空间复杂 → 考虑自底向上(泛化式,从具体事实出发,配 LGG 最小一般泛化);引入函数嵌套 → 进入 ILP 领域(自底向上 + 逆归结),慎入并评估维护成本。
- 完成标准: 写出所选方向 + 样本量/噪声水平的支撑依据。
生成与剪枝配置
- 单条规则生长时避免纯贪心(每轮仅取一个最优文字):至少用集束搜索保留 b 个候选;剪枝方案按规模选——REP 效果好但 O(m⁴),IREP/IREP* 降到近似线性,大数据集用 CN2 式统计显著性预剪枝(LRS 阈值调高如 0.99 才停生长)。
- 完成标准: 输出包含搜索参数(b 值/评估准则)与剪枝策略的完整配置及理由。
规则集级优化
- 参照 RIPPER 后处理:对每条规则产生替换规则与修订规则两个变体,连同原规则集全局重比择优;同时配置冲突消解策略(投票/排序/元规则)与默认规则兜底。
- 完成标准: 交付的规则集经过规则集级优化,且冲突消解策略有书面定义。
- 判停条件: 若步骤 6 复核发现训练精度高但默认规则触发率异常高 → 回到步骤 3 检查贪心锁死与剪枝过度,调整后重跑。
复核与验收
- 在独立验证集上报告覆盖率与准确率的联合表现(不能只报整体精度);请领域专家抽审规则的语义合理性;检查是否存在"编号类高基数属性"混入规则体。
- 完成标准: 输出"覆盖率×准确率×专家抽审意见"三维验收记录。
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