之前介绍了C5.0的内容,今天将描述超市购物篮内容(所购买的全部商品的集合)的虚构数据,以及购买的相关个人数据(通过忠诚卡方案获得)。目的是寻找购买相似产品并且可按人口统计学方式(年龄,收入)刻画其特征的客户群。
要做这项工作,要进行两个阶段的工作:
关联规则建模和一个解释所购买商品之间联系的WEB显示;
C5.0规则归纳(描绘已标识产品组的购买者的特征)
Note:此应用不直接使用预测模型,因此,不对最终模型进行准确性度量,在数据挖掘过程中也不存在与之相关的训练/检验两个步骤的区分。
本例使用baskrule的流,该流引用名为BASKETS1n的数据文件。这些文件可在Clementine安装文件的Demo目录中找到。文件baskrule位于streams目录下。
访问数据
使用“变量文件”节点连接到数据集BASKETS1n,选择要从该文件读取的字段名称。
将“类型”节点连接到数据源,然后将该节点连接到“表”节点。
将字段卡ID的测量级别设置为无类型(因为每个忠诚卡ID在数据集中只出现一次,因此对于建模没有用处)。选择名义作为字段性别的测量级别(确保Apriori建模算法不会将性别视为标志)。
连接一个表,显示数据如下:
购物篮摘要:
cardid购买此篮商品的客户的忠诚卡标识符。
value购物篮的总购买价格
pmethod购物篮的支付方法
卡持有者的个人详细信息:
sex
homeown卡持有者是否拥有住房
income
age
购物篮内容---产品类别的出现标志:
fruitveg
freshmeat
dairy
cannedveg
cannedmeat
frozenmeal
beer
wine
softdrink
fish
confectionery
发现购物篮内容的关系
首先,需要使用Apriori大致了解购物篮内容的关系(关联)以生成关联规则,选择要再此建模过程中使用的字段,方法是:编辑“类型”节点,将所有产品类别的角色设置为两者,并将所有其他角色设置为无。(双向表示该字段可以是结果模型的输入或者输出。)
指定了用于建模的字段后,将Apriori节点附加到“类型”节点,编辑它,选择选项“只显示值为真的标志变量”。
然后在Apriori节点上单击“运行”。结果(管理器窗口右上角“模型”选项卡上的模型)包含可以查看(使用上下文菜单,然后选择“浏览”)的关联规则。
这些规则显示冻肉,罐装蔬菜和啤酒之间尊在多种关联。出现双向关联规则。
frozenmeal->beer
beer->frozenmeal
提示:WEB显示(只显示双向关联)可能会突出显示此数据中的一些模式。将WEB节点附加到“类型”节点,编辑WEB节点,选择所有购物篮内容字段,选择“仅显示true标志”。
然后在WEB节点上单击“运行”。
因为大多数产品类别组合都会出现在多个购物篮中,所以WEB上的强连接太多,无法显示模型表示的客户群。故我们要进行限制性WEB显示。
要制定弱连接和强连接,请单击工具栏上的黄色双箭头按钮。这回展开显示WEB输出摘要和控件的对话框。
选择“大小表示强/正常/弱”。
将弱连接设置为低于90。
将强连接设置为高于100。
在最终显示中,会有三个客户群突出显示:
购买鱼和果蔬的客户,可将这类客户成为“健康食客”
购买酒和粮果的客户
购买啤酒、冻肉和罐装蔬菜(“啤酒、豆类和比萨”)的客户
描绘客户群的特征
根据客户购买的产品类型标识了三个客户群,但是还要知道这些客户是谁,即,他们的人口统计学特征。通过为每个群中,每个客户添加标志,并使用规则归纳(C5.0)来基于规则描绘这些标志的特征,可以实现这一点。
首先,必须获取每个群的标志。使用刚刚创建的web显示,可以自动生成每个群的标志,使用鼠标右键,单击fruitveg和fish之间的链接以突出显示该链接,然后右键单击并选择“为链接生成‘派生’节点”。
编辑最终的“派生”节点以将“派生”字段名称更改为健康。使用从wine到confectionery的链接重复该练习,并将最终的“派生”字段命名为wine_chocs.
对于第三个群(涉及三个链接),首先要确保未选择任何链接。然后,按住shift同时单击鼠标左键,从而选择cannedveg、beer和frozenmeal中的全部三个链接。(一定要处于“交互”模式而不是“编辑”模式。)然后,从web显示菜单中选择:
生成>导出节点(“和”)
将最终“派生”字段的名称更改为beer_beans_pizza。
要描绘这些客户群的特征,要连续将现有的类型节点连接到这三个导出节点,然后附加另一个类型节点。在新的“类型”节点中,将除以下字段外的所有字段的角色都设置为无:value、pmethod、sex、homeown、income和age(这些字段的角色应该设置为输入),以及相关的客户群(例如,beer_beans_pizza,他们的角色应该设置为目标)。
附加C5.0节点,将输出类型设置为规则集,然后在节点上单击“运行”。最终模型(用于beer_beans_pizza)包含此客户群的明确人口统计学特征:
Rule 1 for T:
if sex=M
and income <=16,900
then T
此案例结合了Apriori和C5.0完成了用户购买行为的分析(一方面是用户的自身行为的把握,另一方面是用户买什么产品,怎么搭配让用户去买的把握)事实上,多数的时候我们只完成了一方面的工作,或者把二者隔离开来分析,真正的分析不应该是只问用户买什么,我们怎么搭配销售最好,还要精准投放,精准的分析用户的自身素质。
从上图发现:
工资收入高于16950的人购买三者的比例99.2%
工资低于16950的人的女士购买三者比例98.8%
等等......
通过在第二个类型节点中选择其他客户群标志作为输出,可将同意方法应用到这些标志,通过在此上下文使用Apriori代替C5.0,可生成更多替代特征描绘;Apriori也用于同时描绘所有客户群的特征,原因是,Apriori并非被限制到一个输出字段。下图为整个过程的数据流。