1. 何时使用规则模型
机器学习时常遇到一个问题:当数据并不完全可分时,分类器得分不高。真实世界中的数据经常是这样:各种无意义数据和少量有意义数据混在一起,无意义数据又没什么规律,无法统一去除。比如说,对股票外汇市场受各种因素影响,预测次日涨跌一般各算法效果都不好。虽然找不到通用的规则,却能在数据中探索到一些模式,比如十字星,孕线,三只乌鸦等组合还是具有一定的预测性。
之前使用决策树时,就遇到过这种情况,虽然整体得分不高,但某些叶节点上纯度高(全是正例或全是反例)并且实例多,可以把该分枝拿出来当规则使用。虽然不能用它预测任意数据,但可以作为一个过滤器使用。
2. 规则模型是什么
规则模型和决策树同属逻辑模型,不同的是决策树对正例反例同样重视,而规则只重视正例/反例其中一项。因此决策树呈现的是互斥关系,而规则模型允许重叠,结果也相对零散的规则列表。规则更像是在大量数据中挑选有意义的数据。
如果说树是精确模型,规则模型则是启发式策略(虽然经过修改也能覆盖所有实例,但一般不这么用)。它可以找到数据集中的一个子集,相对于全部数据,该子集有明显的意义。
规则模型多用于处理离散数据,如文本中查找频繁单词,提取摘要,分析购物信息等等。
3. 具体实现
在实现上,我们可以把规则当成树的变种,稍加修改,便是规则模型。具体有两种做法:一种是找规则,使其覆盖同质(全真或全假)的样本集(和树类似);另一种是选定类别,找覆盖该类别实例样本的规则集。
4. 关联规则
规则是一个用途很多的算法,关于规则模型的文章不多,有的书把它归入逻辑推理中,而非机器学习。我们最常见的是关联规则,比如用Apriori实现的频繁项集挖掘算法。
最经典的是购物篮分析中啤酒、尿布的故事,即通过对购物清单的分析,发现看似毫无关系的啤酒和尿布经常在用户的购物篮中一起出现,通过挖掘出啤酒、尿布这个频繁项集,则当一个用户买了啤酒的时候可以为他推荐尿布,从而达到组合营销的目的。
下面将介绍两种基于关联规则的无监督学习算算法Apriori和FP-growth
5. Apriori
(1) 介绍
Apriori这个单词在拉丁语中的意思是“来自以前”,也可拆开为a priori,即一次先验。算法的目标是找到出现频率高的简单规则。
(2)