事务回顾

R 中的购物篮分析

Christopher Bruffaerts

Statistician

购物篮分析要点

购物篮分析

关注"买了什么",不关注"买了多少";
即顾客篮子里有哪些商品?

one_grocery_basket

主要指标

  • 支持度
  • 置信度
  • 提升度

注意

提取的规则可能很多!
不要全部查看或展示——请只用子集,或用函数 head 或 tail!

R 中的购物篮分析

Groceries 数据集

回到杂货店

Groceries

arules 包的数据集

# Loading the arules package
library(arules)

# Loading the Groceries dataset
data(Groceries)
summary(Groceries)
R 中的购物篮分析

Groceries 概要

transactions as itemMatrix in sparse format with
 9835 rows (elements/itemsets/transactions) and
 169 columns (items) and a density of 0.02609146 

most frequent items:
      whole milk other vegetables       rolls/buns             soda           yogurt 
            2513             1903             1809             1715             1372 
         (Other) 
           34055 

element (itemset/transaction) length distribution:
sizes
   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17 
2159 1643 1299 1005  855  645  545  438  350  246  182  117   78   77   55   46   29 
  18   19   20   21   22   23   24   26   27   28   29   32 
  14   14    9   11    4    6    1    1    1    1    3    1 

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   2.000   3.000   4.409   6.000  32.000 

includes extended item information - examples:
       labels  level2           level1
1 frankfurter sausage meat and sausage
2     sausage sausage meat and sausage
3  liver loaf sausage meat and sausage
R 中的购物篮分析

Groceries 的稀疏度

# Plotting a sample of 200 transactions
image(sample(Groceries, 200))

image_groceries_200

1 物品矩阵的稀疏度为 2.6%。
R 中的购物篮分析

最受欢迎与最不受欢迎的商品

最受欢迎的商品

itemFrequencyPlot(Groceries,type="relative",
                  topN=10,horiz=TRUE,col='steelblue3')

itemFreqPlot_groceries

最不受欢迎的商品

par(mar=c(2,10,2,2), mfrow=c(1,1))
barplot(sort(table(unlist(LIST(Groceries))))[1:10],
        horiz = TRUE,las = 1,col='orange')

itemFreqPlot_groceries_leas

R 中的购物篮分析

按索引的交叉表

列联表

# Contingency table
tbl = crossTable(Groceries)
tbl[1:4,1:4]
            frankfurter sausage liver loaf ham
frankfurter         580      99          7  25
sausage              99     924         10  49
liver loaf            7      10         50   3
ham                  25      49          3 256

排序后的列联表

# Sorted contingency table
tbl = crossTable(Groceries, sort = TRUE)
tbl[1:4,1:4]
                whole milk other vegetables rolls/buns soda
whole milk             2513              736        557  394
other vegetables        736             1903        419  322
rolls/buns              557              419       1809  377
soda                    394              322        377 1715
R 中的购物篮分析

按商品名的交叉表

列联表

# Counts
tbl['whole milk','flour']
[1] 83
# Chi-square test
crossTable(Groceries, measure='chi')['whole milk', 'flour']
[1] 0.003595389

含其他度量的列联表

crossTable(Groceries, measure='lift',sort=T)[1:4,1:4]
                 whole milk other vegetables rolls/buns      soda   
whole milk               NA        1.5136341   1.205032 1.571735
other vegetables  1.5136341               NA   1.197047 0.9703476 
rolls/buns        1.2050318        1.1970465         NA 1.1951242 
soda              0.8991124        0.9703476   1.195124        NA
R 中的购物篮分析

MovieLens 数据集

MovieLens:一个基于网页的推荐系统,为用户推荐可观看的电影。

movielens

R 中的购物篮分析

一起看电影!

R 中的购物篮分析

Preparing Video For Download...