Clementine 关联规则
【流9(9.2).str】
9.2.3 Apriori算法的应用示例
这里,利用Clementine提供的超市顾客个人信息和他们的一次购买商品数据,讲解Aprioir算法的具体操作。
数据文件名为BASKETS.txt,为文本格式文件。数据包括两大部分的内容,第一部分是顾客的个人信息,主要变量有会员卡号(cardid)、消费金额(value)、支付方式(pmethod)、性别(sex)、是否户主(homeown)、年龄(age)、收入(income);第二部分是顾客的一次购买商品的信息,主要变量有果蔬(fruitveg)、鲜肉(freshmeat)、奶制品(dairy)、罐头蔬菜(cannedveg)、罐头肉(cannedmeat)、冷冻食品(frozenmeal)、啤酒(beer)、葡萄酒(wine)、软饮料(softdrink)、鱼(fish)、糖果(confectionery),均为二分类型变量,取值T表示购买,F表示未购买,是一种事实表的数据组织格式。分析目标是哪些商品最有可能同时购买。
通过可变文件(Var.File)节点读入数据,选择建模(Modeling)卡中的Apriori节点并将其连接到数据流的恰当位置上,右击鼠标,选择弹出菜单中的编辑(Edit)选项进行参数设置,显示的窗口如图9-3(a)所示。
(a)参数设置窗口 (b) 模型(Model)选项卡
图9-3 Apriori的参数设置窗口及其模型(Model)选项卡
图9-3 (a)中的具体参数设置如下。
●使用类型节点设置(Use type node settings)表示采用数据流中类型(Type)节点 所指定的变量角色建立模型。本例没有设置类型(Type)节点,所以选择使用定制设置(Use Custom settings)选项,表示自行指定建模变量。分别在后项(Consequents)和前项(Antecedents)框中选择关联规则的后项和前项变量。这里要分析连带销售商品,因此所有商品均被选入后项和前项。
●使用事务处理格式(Use transactional format)选项表示,如果数据是按照事务表 格式组织的,则应选择该选项。
图9-3 (b)中的具体参数设置如下。
●最低条件支持度(%)[ Minimum antecedents support(%) ]框:指定前项最小支持 度,默认为10%;最小规则置信度(%)[ Minimum rule confidence(%)]框:指定规则的最小置信度,默认为80%;最大前项数(Maximum number of antecedents)框:为防止关联规则过于复杂,可指定前项中包含的最大项目数,默认为5。
●仅包含标志变量的真值(Only true values for flags)选项:表示只显示项目(要观察的商品)出现时的规则,而不显示项目不出现时的规则。这里,关心的是商品的连带购买,选择该选项。
图9-4 (a)中的具体参数设置如下。
(b)Expert)选项卡 (d)分析结果
●评估测量(Evaluation measure)选项:选择评价关联规则的测度指标,指标含义见后面说明。这里,选择规则置信度。同时,还应在评估尺度下限( Evaluation measure lower bound)框中给定相应的最小值。
●允许没有前项的规则(Allow rules without antecedents)选项:表示允许关联规 则没有前项,意味着只输出频繁项集。
------------------------------
●规则提升度。
规则提升度(Lift)是置信度与后项支持度的比,其数学表示为
(9.4)
事实上,后项支持度是没有模型时研究项(后项)的先验概率。规则提升度反应了项目X的出现对Y的出现有促进作用。规则提升度越大越好。
●置信差(Confidence Difference)。
与规则提升度类似,置信差也利用了后项支持度,是规则提升度与后项支持度的绝对差,数学表示为
(9.5)
例如,在没有任何模型的条件下,后项支持度是80%,即80%的顾客购买牛奶,如果规则置信度是82%,即通过学习知道买面包的顾客购买牛奶的概率是82%,那么置信差是2%,应该说该学习所获得的关联规则提供的信息量并不高,只有2%,其相应的提升度