机器学习(七)探寻模式——基于关联规则的购物篮分析

  • Post author:
  • Post category:其他


理解

分析结果是一组指定商品之间关系模式的关联规则。例如{花生酱,果冻}–>面包。购买前两种就极有可能购买面包。

Apriori算法

现实中,许多潜在的商品组合极少,不是一个一个地评估集合的每一个元素。例如:{机油,口红}这两个物品的组合就可能很少。这样就限制了搜索的范围,该算法采用一个简单的先验信念作为准则来减少关联规则的搜索空间:一个频繁项集(集合)的所有子集也是频繁的。比如,如果{机油,口红}是频繁的,那么当且仅当机油,口红都是频繁的。如果只要其中一个是非频繁的,那么任意一个含有这两项的集合都可以从搜索中排除。

  • 度量规则兴趣度

    支持度:指其在数据库中出现的频率

    置信度:该规则的预测能力或者准确度的度量。

    这里写图片描述

该算法创建规则包括两个阶段:

1.事变所有满足最小支持度阈值的项集

2.根据满足最小置信度阈值的这些项集创建规则

例如,第一阶段——第一次迭代中,{a},{b},{c}均为频繁的,{d}不是,第二次迭代中,只有abc参与组合即{a,b},{a,c},{b,c},这时候如果ac不是频繁的,第三次迭代没有出现新的组合,迭代停止。第二阶段——给定一组频繁的项集,根据所有可能的子集产生关联规则,例如{a,b}产生{a}->{b}和{b}->{a},这些规则将根据最小置信度阈值进行评估,任何不满足所期望的置信度规则将被消除。

R语言举例:确定经常一起购买的食品

事务型数据:没有固定的特征,每个案例特征都可能不同。

>install.packages("arules")
> groceries<-read.transactions("groceries.csv",sep = ",")
> groceryrules<-apriori(groceries,parameter = list(support=0.006,confidence=0.25,minlen=2))
Apriori

Parameter specification:
 confidence minval smax arem  aval originalSupport maxtime support minlen maxlen
       0.25    0.1    1 none FALSE            TRUE       5   0.006      2     10
 target   ext
  rules FALSE

Algorithmic control:
 filter tree heap memopt load sort verbose
    0.1 TRUE TRUE  FALSE TRUE    2    TRUE

Absolute minimum support count: 59 

set item appearances ...[0 item(s)] done [0.00s].
set transactions ...[169 item(s), 9835 transaction(s)] done [0.00s].
sorting and recoding items ... [109 item(s)] done [0.00s].
creating transaction tree ... done [0.00s].
checking subsets of size 1 2 3 4 done [0.00s].
writing ... [463 rule(s)] done [0.00s].
creating S4 object  ... done [0.00s].
>inspect(sort(groceryrules,by="lift")[1:5])#按照某一规则排序
    lhs                   rhs                         support   confidence        lift
[1] {herbs}            => {root vegetables}    0.007015760041 0.4312500000 3.956477379
[2] {berries}          => {whipped/sour cream} 0.009049313676 0.2721712538 3.796885505
[3] {other vegetables,                                                                
     tropical fruit,                                                                  
     whole milk}       => {root vegetables}    0.007015760041 0.4107142857 3.768073694
[4] {beef,                                                                            
     other vegetables} => {root vegetables}    0.007930859176 0.4020618557 3.688692491
[5] {other vegetables,                                                                
     tropical fruit}   => {pip fruit}          0.009456024403 0.2634560907 3.482648725
> 

其中,lift:一类商品已经被购买了,提升度用来衡量相对于这类商品的其他商品的购买率



版权声明:本文为wqy20140101原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。