规则学习是什么?从数据中自动学出“如果……那么……”规则
规则学习(Rule Learning)是一类从训练数据中自动地学习出一组规则的机器学习方法。这些规则通常采用“如果……那么……”的形式,比如“如果天气晴朗并且湿度较低,那么适合户外运动”。与神经网络等“黑箱”模型不同,学到的规则可以直接被人读懂和检验,因此规则学习具有很强的可解释性。
规则的形式
一条规则由两部分组成:规则体,也就是“如果”后面的条件,通常由若干个关于特征取值的条件组合而成,比如“年龄小于 30 岁并且月收入大于一万元”;规则头,也就是“那么”后面的结论,比如“属于高潜力客户”。一组规则合在一起,就构成了一个规则集,可以用来对新的样本进行分类。当一个样本同时满足多条规则、而这些规则给出了不同的结论时,就需要有解决冲突的策略,比如按照规则的优先顺序,只采用排在最前面的那条规则,这样的规则集叫作决策列表;或者根据规则的准确率进行投票。
怎么学习规则:序贯覆盖
规则学习最常用的策略叫序贯覆盖,也叫“分而治之”:先学习一条规则,让它尽可能多地覆盖某一类的样本,同时尽量不覆盖其他类的样本;然后把这条规则已经覆盖的样本从训练集中去掉;再用剩下的样本学习下一条规则;如此反复,直到所有的样本都被覆盖,或者无法再学到有用的规则为止。
学习单条规则时,有两种搜索的方向:自顶向下,从一条非常一般的规则开始,比如“所有样本都属于这一类”,然后逐步地添加条件,让规则变得越来越具体、越来越准确,这是一个“特化”的过程;自底向上,从一个具体的样本开始,逐步地删去条件,让规则变得越来越一般、覆盖越来越多的样本,这是一个“泛化”的过程。为了防止规则过于具体、只适用于训练数据,规则学习通常也需要进行剪枝。
代表性的算法
AQ 算法:由 Ryszard Michalski 在 20 世纪 60 年代末开始提出,是最早的规则学习算法之一。CN2 算法:由 Peter Clark 和 Tim Niblett 在 1989 年提出,能够处理带有噪声的数据。RIPPER 算法:由 William Cohen 在 1995 年提出,引入了高效的剪枝和优化步骤,在效果上能与决策树算法相媲美,并且速度很快,是使用较广泛的规则学习算法。此外,决策树也可以转换成规则:从根节点到每一个叶子节点的路径,就对应着一条规则。
相关的方向
关联规则挖掘:从大量的交易数据中发现经常一起出现的项目,比如“购买了面包和牛奶的顾客,往往也会购买鸡蛋”,代表算法有 Apriori。它是一种无监督的规则发现。归纳逻辑程序设计:学习用一阶逻辑表示的规则,可以描述对象之间的关系,表达能力比只涉及特征取值的命题规则更强。
优缺点
规则学习的最大优点是结果易于理解、易于检验和修改,领域专家可以直接查看学到的规则,判断它们是否合理,还可以方便地把已有的领域知识融入进来。因此,它在医疗、金融风控、合规审查等需要解释决策的领域很有价值。它的缺点是表达能力有限,在处理图像、语音等复杂的感知数据时,效果远不如深度学习;当规则数量很多时,也会变得难以理解和维护。