规则学习
基本概念
机器学习中的“规则”通常是指语义明确、能描述数据分布所隐含的客观规律或领域概念、可写成“若·······,则········”形式的逻辑规则。“规则学习”是从训练数据中学习出一组能用于对未见示例进行判别的规则。
与神经网络、支持向量机这样的“黑箱模型”相比,规则学习具有更好的可解释性,能使用户更直观地对判别过程有所了解。另一方面,数理逻辑具有极强的表达能力,绝大多数人类知识都能通过数理逻辑进行间接的刻画和表达。因此,规则学习能更自然地在学习过程中引入领域知识。此外,逻辑规则的抽象描述能力在处理一些高度复杂的AI任务时具有显著的优势,例如在问答系统中又是可能遇到非常多、甚至无穷种可能的答案,此时若能基于逻辑规则进行抽象表述或者推理,则将带来极大的便利。
序贯覆盖
规则学习的目标是产生一个能覆盖尽可能多的样例的规则集。最直接的做法是“序贯覆盖”,即逐条归纳:在训练集上每学到一条规则,就将该规则股改的训练样例去除,然后以剩下的训练样例组成训练集重复上述过程。由于每次只处理一部分数据,因此也被称为“分治”策略。
具体的例子请查阅书籍。
剪枝优化
规则生成本质上是一个贪心搜索过程,需有一定的机制来缓解过拟合的风险,最常见的做法是剪枝。与决策树相似,剪枝可发生在规则生长过程中,即“预剪枝”,也可发生在规则产生后,即“后剪枝”。通常是基于某种性能度量指标来评估增/删逻辑文字前后的规则性能,或增/删规则前后的规则集性能,从而判断是否要进行剪枝。
剪枝还可借助统计显著性检验来进行。例如CN2算法在预剪枝时,假设用规则集进行预测必须显著优于直接基于训练样例集后验概率分布进行预测。为便于计算,CN2使用了似然率统计量(简称LRS),令分别表示训练样例集中的正、反例数目,
分别表示规则(集)覆盖的正、反例数目,则有
这实际上是一种信息量指标,衡量了规则(集)覆盖样例的分布于训练集经验分布的差别:LRS越大,说明采用规则(集)进行预测与直接使用训练集正、反例比率进行猜测的差别越大;LRS越小,说明规则(集)的效果越可能仅是偶然现象。在数据量比较大的现实任务中,通常设置为在LRS很大(例如0.99)时CN2算法才停止规则(集)生长。
后剪枝最常用的策略是“减错剪枝”(简称REP),其基本做法是:将样例集划分为训练集和验证集,从训练集上学得规则集R后进行多轮剪枝,在每一轮穷举所有可能的剪枝操作,包括删除规则中某个文字、删除规则结尾文字、删除规则尾部多个文字、删除整条规则等,然后用验证集对剪枝产生的所有候选规则集进行评估,保留最好的那个规则集进行下一轮剪枝,如此继续,知道无法通过剪枝提高验证集上的性能为止。
若将剪枝机制与其他一些后处理手段结合起来对规则集进行优化,则往往能获得更好的效果。以著名的规则学习算法RIPPER为例:先使用IREP*剪枝机制生成规则集R。IREP*是IREP的改进,主要是以取代了IREP使用的准确率作为规则性能度量指标,在剪枝时删除规则尾部的多个文字,并在最终得到规则集之后再进行一个IREP剪枝。