机器学习(周志华) 第十五章规则学习

关于周志华老师的《机器学习》这本书的学习笔记
记录学习过程
本博客记录Chapter15

文章目录

  • 1 基本概念
  • 2 序贯覆盖
  • 3 剪枝优化

1 基本概念

一条规则形如:
⊕ ← f 1 ∧ f 2 ∧ ⋯ ∧ f L \oplus \leftarrow \mathbf{f}_1 \wedge \mathbf{f}_2 \wedge \cdots \wedge \mathbf{f}_L f1f2fL
左侧为规则头(head),右侧为规则体(body)。上式是指,只有右侧 L L L个条件均满足,左侧部分才成立。这样的逻辑规则称为 “if-then规则”

与神经网络、支持向量机这样的"黑箱模型"相比,规则学习具有更好的可解释性,能使用户更直观地对判别过程有所了解。

显然,规则集合中的每条规则都可看作一个子模型,规则集合是这些子模型的一个集成。当同一个示例被判别结果不同的多条规则覆盖时,称发生了 “冲突” (conflict),解决冲突的办法称为 “冲突消解” (conflict resolution)。 常用的冲突消解策略有投票法、排序法、元规则法等。

2 序贯覆盖

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

基于穷尽搜索的做法在属性和候选值较多时会由于组合爆炸而不可行。现实任务中一般有两种策略来产生规则:

  • 第一种是 “自顶向下”,即从比较一般的规则开始,逐渐添加新文字以缩小规则覆盖范围,直到满足预定条件为止。亦称为"生成-测试"法,是规则逐渐"特化"的过程
  • 第二种是 “自底向上”,即从比较特妹的规则开始,逐渐删除文字以扩大规则覆盖范围,直到满足条件为止。亦称为"数据驱动" 法,是规则逐渐"泛化"过程。

第一种策略是覆盖范围从大往小搜索规则,第二种策略则相反。前者通常更容易产生泛化性能较好的规则,后者则更适合于训练样本较少的情形,此外,前者对噪声的鲁棒性比后者要强得多。因此,在命题规则学习中通常使用第一种策略,而第二种策略在一阶规则学习这类假设空间非常复杂地任务中使用比较多。

3 剪枝优化

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

剪枝还可借助统计显著性检验来进行。例如 CN2 算法在预剪枝时,假设用规则集进行预测必须显著优于直接基于训练样例集后验概率分布进行预测。

为便于计算, CN2 使用了似然率统计量LRS。令 m + , m − m_+, m_- m+,m分别表示训练样例集中的正、反例数
目,$\hat m_+, \hat m_- $分别表示规则(集)覆盖的正、反例数日,则有
L R S = 2 ⋅ ( m ^ + log ⁡ 2 m ^ + m ^ + + m ^ − m + m + + m − + m ^ − log ⁡ 2 m ^ + m ^ + − m ^ − m − m + + m − ) LRS = 2 \cdot \big( \hat m_+\log_2\frac{\frac{\hat m_+}{\hat m_++\hat m_-}}{\frac{m_+}{m_++m_-}}+ \hat m_-\log_2\frac{\frac{\hat m_+}{\hat m_+-\hat m_-}}{\frac{m_-}{m_++m_-}}\big ) LRS=2(m^+log2m++mm+m^++m^m^++m^log2m++mmm^+m^m^+)
这实际上是一种信息量指标,衡量了规则(集)覆盖样例的分布与训练集经验分布的差别:

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

在数据量比较大的现实任务中,通常设置为在LRS很大(例如 0.99)时CN2算法才停止规则(集)生长。

你可能感兴趣的:(机器学习(NLP,神经网络等),机器学习)