20 min read

Market Basket Analysis

library(tidyverse)
library(arulesViz)
library(lubridate)
library(arules)
library(RColorBrewer)
library(stringr)
library(tidyr)

Data sourced from Kaggle https://www.kaggle.com/heeraldedhia/groceries-dataset?select=Groceries_dataset.csv

Association rules

\(Rule: X \implies Y\)

\[Support = \frac{freq(X, Y)}{N}\]

\[Confidence = \frac{freq(X, Y)}{freq(X)}\]

\[Lift = \frac{Support}{Supp(X)\times Supp(Y)}\]

APRIORI Algorithm

transactions <- read.csv(file.path("basket.csv"))

df <- transactions %>%
  group_by(Member_number, Date) %>%
  summarise(items = str_c(itemDescription, collapse = ",")) %>% 
  mutate(n=str_count(items,",")+1)

max(df$n)
## [1] 11
transactions %>% 
  count(itemDescription, sort = TRUE) %>% 
  head(5)
##    itemDescription    n
## 1       whole milk 2502
## 2 other vegetables 1898
## 3       rolls/buns 1716
## 4             soda 1514
## 5           yogurt 1334
transactions %>% 
  count(itemDescription, sort = TRUE) %>% 
  tail(5)
##           itemDescription n
## 163        toilet cleaner 5
## 164                  bags 4
## 165        baby cosmetics 3
## 166       kitchen utensil 1
## 167 preservation products 1

Utidying the dataset for use with the APRIORI algorithm in the “arules” package.

basket <- transactions %>%
  group_by(Member_number, Date) %>%
  summarise(items = str_c(itemDescription, collapse = ",")) %>%
  ungroup() %>%
  select(items)


dim(basket)
## [1] 14963     1
basket <- basket %>% 
  separate(col = items, sep=",",into = c(paste(seq(1:11))))

#colnames(basket) <- NULL
basket
## # A tibble: 14,963 x 11
##    `1`      `2`        `3`       `4`   `5`   `6`   `7`   `8`   `9`   `10`  `11` 
##    <chr>    <chr>      <chr>     <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
##  1 sausage  whole milk semi-fin~ yogu~ <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> 
##  2 whole m~ pastry     salty sn~ <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> 
##  3 canned ~ misc. bev~ <NA>      <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> 
##  4 sausage  hygiene a~ <NA>      <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> 
##  5 soda     pickled v~ <NA>      <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> 
##  6 frankfu~ curd       <NA>      <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> 
##  7 sausage  whole milk rolls/bu~ <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> 
##  8 whole m~ soda       <NA>      <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> 
##  9 beef     white bre~ <NA>      <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> 
## 10 frankfu~ soda       whipped/~ <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> 
## # ... with 14,953 more rows
#write.csv(basket,file = file.path("data","basketitems.csv"))

#transaction_object <- read.transactions(file.path("data","basketitems.csv"),sep = ",")

transaction_object <- as(basket, "transactions")

summary(transaction_object)
## transactions as itemMatrix in sparse format with
##  14963 rows (elements/itemsets/transactions) and
##  1054 columns (items) and a density of 0.002457992 
## 
## most frequent items:
##       1=whole milk       2=whole milk 1=other vegetables          1=sausage 
##               1083                983                840                751 
## 2=other vegetables            (Other) 
##                750              34358 
## 
## element (itemset/transaction) length distribution:
## sizes
##     2     3     4     5     6     7     8     9    11 
## 10080  2698  1390   344   175    80   145    50     1 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   2.000   2.000   2.000   2.591   3.000  11.000 
## 
## includes extended item information - examples:
##               labels variables           levels
## 1 1=abrasive cleaner         1 abrasive cleaner
## 2 1=artif. sweetener         1 artif. sweetener
## 3   1=baby cosmetics         1   baby cosmetics
## 
## includes extended transaction information - examples:
##   transactionID
## 1             1
## 2             2
## 3             3
# WIP
#colnames(transaction_object) <- colnames(transaction_object) %>% 
#  str_remove(pattern = "[123456789][=]")

colnames(transaction_object)
##    [1] "1=abrasive cleaner"          "1=artif. sweetener"         
##    [3] "1=baby cosmetics"            "1=bags"                     
##    [5] "1=baking powder"             "1=bathroom cleaner"         
##    [7] "1=beef"                      "1=berries"                  
##    [9] "1=beverages"                 "1=bottled beer"             
##   [11] "1=bottled water"             "1=brandy"                   
##   [13] "1=brown bread"               "1=butter"                   
##   [15] "1=butter milk"               "1=cake bar"                 
##   [17] "1=candles"                   "1=candy"                    
##   [19] "1=canned beer"               "1=canned fish"              
##   [21] "1=canned fruit"              "1=canned vegetables"        
##   [23] "1=cat food"                  "1=cereals"                  
##   [25] "1=chewing gum"               "1=chicken"                  
##   [27] "1=chocolate"                 "1=chocolate marshmallow"    
##   [29] "1=citrus fruit"              "1=cleaner"                  
##   [31] "1=cling film/bags"           "1=cocoa drinks"             
##   [33] "1=coffee"                    "1=condensed milk"           
##   [35] "1=cooking chocolate"         "1=cookware"                 
##   [37] "1=cream"                     "1=cream cheese "            
##   [39] "1=curd"                      "1=curd cheese"              
##   [41] "1=decalcifier"               "1=dental care"              
##   [43] "1=dessert"                   "1=detergent"                
##   [45] "1=dish cleaner"              "1=dishes"                   
##   [47] "1=dog food"                  "1=domestic eggs"            
##   [49] "1=female sanitary products"  "1=finished products"        
##   [51] "1=fish"                      "1=flour"                    
##   [53] "1=flower (seeds)"            "1=flower soil/fertilizer"   
##   [55] "1=frankfurter"               "1=frozen chicken"           
##   [57] "1=frozen dessert"            "1=frozen fish"              
##   [59] "1=frozen fruits"             "1=frozen meals"             
##   [61] "1=frozen potato products"    "1=frozen vegetables"        
##   [63] "1=fruit/vegetable juice"     "1=grapes"                   
##   [65] "1=hair spray"                "1=ham"                      
##   [67] "1=hamburger meat"            "1=hard cheese"              
##   [69] "1=herbs"                     "1=honey"                    
##   [71] "1=house keeping products"    "1=hygiene articles"         
##   [73] "1=ice cream"                 "1=instant coffee"           
##   [75] "1=Instant food products"     "1=jam"                      
##   [77] "1=ketchup"                   "1=kitchen towels"           
##   [79] "1=kitchen utensil"           "1=light bulbs"              
##   [81] "1=liqueur"                   "1=liquor"                   
##   [83] "1=liquor (appetizer)"        "1=liver loaf"               
##   [85] "1=long life bakery product"  "1=make up remover"          
##   [87] "1=male cosmetics"            "1=margarine"                
##   [89] "1=mayonnaise"                "1=meat"                     
##   [91] "1=meat spreads"              "1=misc. beverages"          
##   [93] "1=mustard"                   "1=napkins"                  
##   [95] "1=newspapers"                "1=nut snack"                
##   [97] "1=nuts/prunes"               "1=oil"                      
##   [99] "1=onions"                    "1=organic products"         
##  [101] "1=organic sausage"           "1=other vegetables"         
##  [103] "1=packaged fruit/vegetables" "1=pasta"                    
##  [105] "1=pastry"                    "1=pet care"                 
##  [107] "1=photo/film"                "1=pickled vegetables"       
##  [109] "1=pip fruit"                 "1=popcorn"                  
##  [111] "1=pork"                      "1=pot plants"               
##  [113] "1=potato products"           "1=preservation products"    
##  [115] "1=processed cheese"          "1=prosecco"                 
##  [117] "1=pudding powder"            "1=ready soups"              
##  [119] "1=red/blush wine"            "1=rice"                     
##  [121] "1=roll products "            "1=rolls/buns"               
##  [123] "1=root vegetables"           "1=rum"                      
##  [125] "1=salad dressing"            "1=salt"                     
##  [127] "1=salty snack"               "1=sauces"                   
##  [129] "1=sausage"                   "1=seasonal products"        
##  [131] "1=semi-finished bread"       "1=shopping bags"            
##  [133] "1=skin care"                 "1=sliced cheese"            
##  [135] "1=snack products"            "1=soap"                     
##  [137] "1=soda"                      "1=soft cheese"              
##  [139] "1=softener"                  "1=soups"                    
##  [141] "1=sparkling wine"            "1=specialty bar"            
##  [143] "1=specialty cheese"          "1=specialty chocolate"      
##  [145] "1=specialty fat"             "1=specialty vegetables"     
##  [147] "1=spices"                    "1=spread cheese"            
##  [149] "1=sugar"                     "1=sweet spreads"            
##  [151] "1=syrup"                     "1=tea"                      
##  [153] "1=tidbits"                   "1=tropical fruit"           
##  [155] "1=turkey"                    "1=UHT-milk"                 
##  [157] "1=vinegar"                   "1=waffles"                  
##  [159] "1=whipped/sour cream"        "1=whisky"                   
##  [161] "1=white bread"               "1=white wine"               
##  [163] "1=whole milk"                "1=yogurt"                   
##  [165] "1=zwieback"                  "2=abrasive cleaner"         
##  [167] "2=artif. sweetener"          "2=baby cosmetics"           
##  [169] "2=bags"                      "2=baking powder"            
##  [171] "2=bathroom cleaner"          "2=beef"                     
##  [173] "2=berries"                   "2=beverages"                
##  [175] "2=bottled beer"              "2=bottled water"            
##  [177] "2=brandy"                    "2=brown bread"              
##  [179] "2=butter"                    "2=butter milk"              
##  [181] "2=cake bar"                  "2=candles"                  
##  [183] "2=candy"                     "2=canned beer"              
##  [185] "2=canned fish"               "2=canned fruit"             
##  [187] "2=canned vegetables"         "2=cat food"                 
##  [189] "2=cereals"                   "2=chewing gum"              
##  [191] "2=chicken"                   "2=chocolate"                
##  [193] "2=chocolate marshmallow"     "2=citrus fruit"             
##  [195] "2=cleaner"                   "2=cling film/bags"          
##  [197] "2=cocoa drinks"              "2=coffee"                   
##  [199] "2=condensed milk"            "2=cooking chocolate"        
##  [201] "2=cookware"                  "2=cream"                    
##  [203] "2=cream cheese "             "2=curd"                     
##  [205] "2=curd cheese"               "2=decalcifier"              
##  [207] "2=dental care"               "2=dessert"                  
##  [209] "2=detergent"                 "2=dish cleaner"             
##  [211] "2=dishes"                    "2=dog food"                 
##  [213] "2=domestic eggs"             "2=female sanitary products" 
##  [215] "2=finished products"         "2=fish"                     
##  [217] "2=flour"                     "2=flower (seeds)"           
##  [219] "2=flower soil/fertilizer"    "2=frankfurter"              
##  [221] "2=frozen chicken"            "2=frozen dessert"           
##  [223] "2=frozen fish"               "2=frozen fruits"            
##  [225] "2=frozen meals"              "2=frozen potato products"   
##  [227] "2=frozen vegetables"         "2=fruit/vegetable juice"    
##  [229] "2=grapes"                    "2=hair spray"               
##  [231] "2=ham"                       "2=hamburger meat"           
##  [233] "2=hard cheese"               "2=herbs"                    
##  [235] "2=honey"                     "2=house keeping products"   
##  [237] "2=hygiene articles"          "2=ice cream"                
##  [239] "2=instant coffee"            "2=Instant food products"    
##  [241] "2=jam"                       "2=ketchup"                  
##  [243] "2=kitchen towels"            "2=light bulbs"              
##  [245] "2=liqueur"                   "2=liquor"                   
##  [247] "2=liquor (appetizer)"        "2=liver loaf"               
##  [249] "2=long life bakery product"  "2=make up remover"          
##  [251] "2=male cosmetics"            "2=margarine"                
##  [253] "2=mayonnaise"                "2=meat"                     
##  [255] "2=meat spreads"              "2=misc. beverages"          
##  [257] "2=mustard"                   "2=napkins"                  
##  [259] "2=newspapers"                "2=nut snack"                
##  [261] "2=nuts/prunes"               "2=oil"                      
##  [263] "2=onions"                    "2=organic products"         
##  [265] "2=organic sausage"           "2=other vegetables"         
##  [267] "2=packaged fruit/vegetables" "2=pasta"                    
##  [269] "2=pastry"                    "2=pet care"                 
##  [271] "2=photo/film"                "2=pickled vegetables"       
##  [273] "2=pip fruit"                 "2=popcorn"                  
##  [275] "2=pork"                      "2=pot plants"               
##  [277] "2=potato products"           "2=processed cheese"         
##  [279] "2=prosecco"                  "2=pudding powder"           
##  [281] "2=ready soups"               "2=red/blush wine"           
##  [283] "2=rice"                      "2=roll products "           
##  [285] "2=rolls/buns"                "2=root vegetables"          
##  [287] "2=rubbing alcohol"           "2=rum"                      
##  [289] "2=salad dressing"            "2=salt"                     
##  [291] "2=salty snack"               "2=sauces"                   
##  [293] "2=sausage"                   "2=seasonal products"        
##  [295] "2=semi-finished bread"       "2=shopping bags"            
##  [297] "2=skin care"                 "2=sliced cheese"            
##  [299] "2=snack products"            "2=soap"                     
##  [301] "2=soda"                      "2=soft cheese"              
##  [303] "2=softener"                  "2=soups"                    
##  [305] "2=sparkling wine"            "2=specialty bar"            
##  [307] "2=specialty cheese"          "2=specialty chocolate"      
##  [309] "2=specialty fat"             "2=specialty vegetables"     
##  [311] "2=spices"                    "2=spread cheese"            
##  [313] "2=sugar"                     "2=sweet spreads"            
##  [315] "2=syrup"                     "2=tea"                      
##  [317] "2=tidbits"                   "2=toilet cleaner"           
##  [319] "2=tropical fruit"            "2=turkey"                   
##  [321] "2=UHT-milk"                  "2=vinegar"                  
##  [323] "2=waffles"                   "2=whipped/sour cream"       
##  [325] "2=whisky"                    "2=white bread"              
##  [327] "2=white wine"                "2=whole milk"               
##  [329] "2=yogurt"                    "2=zwieback"                 
##  [331] "3=abrasive cleaner"          "3=artif. sweetener"         
##  [333] "3=bags"                      "3=baking powder"            
##  [335] "3=bathroom cleaner"          "3=beef"                     
##  [337] "3=berries"                   "3=beverages"                
##  [339] "3=bottled beer"              "3=bottled water"            
##  [341] "3=brandy"                    "3=brown bread"              
##  [343] "3=butter"                    "3=butter milk"              
##  [345] "3=cake bar"                  "3=candles"                  
##  [347] "3=candy"                     "3=canned beer"              
##  [349] "3=canned fish"               "3=canned fruit"             
##  [351] "3=canned vegetables"         "3=cat food"                 
##  [353] "3=cereals"                   "3=chewing gum"              
##  [355] "3=chicken"                   "3=chocolate"                
##  [357] "3=chocolate marshmallow"     "3=citrus fruit"             
##  [359] "3=cleaner"                   "3=cling film/bags"          
##  [361] "3=cocoa drinks"              "3=coffee"                   
##  [363] "3=condensed milk"            "3=cooking chocolate"        
##  [365] "3=cream"                     "3=cream cheese "            
##  [367] "3=curd"                      "3=curd cheese"              
##  [369] "3=decalcifier"               "3=dental care"              
##  [371] "3=dessert"                   "3=detergent"                
##  [373] "3=dish cleaner"              "3=dishes"                   
##  [375] "3=dog food"                  "3=domestic eggs"            
##  [377] "3=female sanitary products"  "3=flour"                    
##  [379] "3=flower (seeds)"            "3=frankfurter"              
##  [381] "3=frozen dessert"            "3=frozen fish"              
##  [383] "3=frozen fruits"             "3=frozen meals"             
##  [385] "3=frozen potato products"    "3=frozen vegetables"        
##  [387] "3=fruit/vegetable juice"     "3=grapes"                   
##  [389] "3=ham"                       "3=hamburger meat"           
##  [391] "3=hard cheese"               "3=herbs"                    
##  [393] "3=honey"                     "3=house keeping products"   
##  [395] "3=hygiene articles"          "3=ice cream"                
##  [397] "3=instant coffee"            "3=Instant food products"    
##  [399] "3=jam"                       "3=ketchup"                  
##  [401] "3=kitchen towels"            "3=light bulbs"              
##  [403] "3=liqueur"                   "3=liquor"                   
##  [405] "3=liquor (appetizer)"        "3=liver loaf"               
##  [407] "3=long life bakery product"  "3=male cosmetics"           
##  [409] "3=margarine"                 "3=mayonnaise"               
##  [411] "3=meat"                      "3=meat spreads"             
##  [413] "3=misc. beverages"           "3=mustard"                  
##  [415] "3=napkins"                   "3=newspapers"               
##  [417] "3=nut snack"                 "3=nuts/prunes"              
##  [419] "3=oil"                       "3=onions"                   
##  [421] "3=organic products"          "3=organic sausage"          
##  [423] "3=other vegetables"          "3=packaged fruit/vegetables"
##  [425] "3=pasta"                     "3=pastry"                   
##  [427] "3=pet care"                  "3=photo/film"               
##  [429] "3=pickled vegetables"        "3=pip fruit"                
##  [431] "3=popcorn"                   "3=pork"                     
##  [433] "3=pot plants"                "3=potato products"          
##  [435] "3=processed cheese"          "3=prosecco"                 
##  [437] "3=pudding powder"            "3=ready soups"              
##  [439] "3=red/blush wine"            "3=rice"                     
##  [441] "3=roll products "            "3=rolls/buns"               
##  [443] "3=root vegetables"           "3=rubbing alcohol"          
##  [445] "3=rum"                       "3=salt"                     
##  [447] "3=salty snack"               "3=sauces"                   
##  [449] "3=sausage"                   "3=seasonal products"        
##  [451] "3=semi-finished bread"       "3=shopping bags"            
##  [453] "3=sliced cheese"             "3=snack products"           
##  [455] "3=soap"                      "3=soda"                     
##  [457] "3=soft cheese"               "3=softener"                 
##  [459] "3=soups"                     "3=sparkling wine"           
##  [461] "3=specialty bar"             "3=specialty cheese"         
##  [463] "3=specialty chocolate"       "3=specialty fat"            
##  [465] "3=specialty vegetables"      "3=spices"                   
##  [467] "3=spread cheese"             "3=sugar"                    
##  [469] "3=sweet spreads"             "3=syrup"                    
##  [471] "3=tea"                       "3=tidbits"                  
##  [473] "3=tropical fruit"            "3=turkey"                   
##  [475] "3=UHT-milk"                  "3=vinegar"                  
##  [477] "3=waffles"                   "3=whipped/sour cream"       
##  [479] "3=whisky"                    "3=white bread"              
##  [481] "3=white wine"                "3=whole milk"               
##  [483] "3=yogurt"                    "3=zwieback"                 
##  [485] "4=abrasive cleaner"          "4=artif. sweetener"         
##  [487] "4=baking powder"             "4=beef"                     
##  [489] "4=berries"                   "4=beverages"                
##  [491] "4=bottled beer"              "4=bottled water"            
##  [493] "4=brandy"                    "4=brown bread"              
##  [495] "4=butter"                    "4=butter milk"              
##  [497] "4=cake bar"                  "4=candles"                  
##  [499] "4=candy"                     "4=canned beer"              
##  [501] "4=canned fish"               "4=canned fruit"             
##  [503] "4=canned vegetables"         "4=cat food"                 
##  [505] "4=cereals"                   "4=chewing gum"              
##  [507] "4=chicken"                   "4=chocolate"                
##  [509] "4=chocolate marshmallow"     "4=citrus fruit"             
##  [511] "4=cleaner"                   "4=cling film/bags"          
##  [513] "4=cocoa drinks"              "4=coffee"                   
##  [515] "4=condensed milk"            "4=cookware"                 
##  [517] "4=cream cheese "             "4=curd"                     
##  [519] "4=curd cheese"               "4=decalcifier"              
##  [521] "4=dental care"               "4=dessert"                  
##  [523] "4=detergent"                 "4=dish cleaner"             
##  [525] "4=dishes"                    "4=dog food"                 
##  [527] "4=domestic eggs"             "4=female sanitary products" 
##  [529] "4=finished products"         "4=flour"                    
##  [531] "4=flower (seeds)"            "4=flower soil/fertilizer"   
##  [533] "4=frankfurter"               "4=frozen dessert"           
##  [535] "4=frozen fish"               "4=frozen meals"             
##  [537] "4=frozen potato products"    "4=frozen vegetables"        
##  [539] "4=fruit/vegetable juice"     "4=grapes"                   
##  [541] "4=ham"                       "4=hamburger meat"           
##  [543] "4=hard cheese"               "4=herbs"                    
##  [545] "4=honey"                     "4=house keeping products"   
##  [547] "4=hygiene articles"          "4=ice cream"                
##  [549] "4=instant coffee"            "4=Instant food products"    
##  [551] "4=jam"                       "4=ketchup"                  
##  [553] "4=light bulbs"               "4=liquor"                   
##  [555] "4=liquor (appetizer)"        "4=long life bakery product" 
##  [557] "4=margarine"                 "4=mayonnaise"               
##  [559] "4=meat"                      "4=meat spreads"             
##  [561] "4=misc. beverages"           "4=mustard"                  
##  [563] "4=napkins"                   "4=newspapers"               
##  [565] "4=nut snack"                 "4=nuts/prunes"              
##  [567] "4=oil"                       "4=onions"                   
##  [569] "4=organic products"          "4=organic sausage"          
##  [571] "4=other vegetables"          "4=packaged fruit/vegetables"
##  [573] "4=pasta"                     "4=pastry"                   
##  [575] "4=pet care"                  "4=photo/film"               
##  [577] "4=pickled vegetables"        "4=pip fruit"                
##  [579] "4=popcorn"                   "4=pork"                     
##  [581] "4=pot plants"                "4=potato products"          
##  [583] "4=processed cheese"          "4=prosecco"                 
##  [585] "4=pudding powder"            "4=ready soups"              
##  [587] "4=red/blush wine"            "4=rice"                     
##  [589] "4=roll products "            "4=rolls/buns"               
##  [591] "4=root vegetables"           "4=rum"                      
##  [593] "4=salad dressing"            "4=salt"                     
##  [595] "4=salty snack"               "4=sauces"                   
##  [597] "4=sausage"                   "4=seasonal products"        
##  [599] "4=semi-finished bread"       "4=shopping bags"            
##  [601] "4=sliced cheese"             "4=snack products"           
##  [603] "4=soap"                      "4=soda"                     
##  [605] "4=soft cheese"               "4=softener"                 
##  [607] "4=soups"                     "4=sparkling wine"           
##  [609] "4=specialty bar"             "4=specialty cheese"         
##  [611] "4=specialty chocolate"       "4=specialty fat"            
##  [613] "4=specialty vegetables"      "4=spices"                   
##  [615] "4=spread cheese"             "4=sugar"                    
##  [617] "4=sweet spreads"             "4=syrup"                    
##  [619] "4=tidbits"                   "4=tropical fruit"           
##  [621] "4=turkey"                    "4=UHT-milk"                 
##  [623] "4=vinegar"                   "4=waffles"                  
##  [625] "4=whipped/sour cream"        "4=white bread"              
##  [627] "4=white wine"                "4=whole milk"               
##  [629] "4=yogurt"                    "4=zwieback"                 
##  [631] "5=abrasive cleaner"          "5=artif. sweetener"         
##  [633] "5=baby cosmetics"            "5=baking powder"            
##  [635] "5=beef"                      "5=berries"                  
##  [637] "5=beverages"                 "5=bottled beer"             
##  [639] "5=bottled water"             "5=brandy"                   
##  [641] "5=brown bread"               "5=butter"                   
##  [643] "5=butter milk"               "5=cake bar"                 
##  [645] "5=candles"                   "5=candy"                    
##  [647] "5=canned beer"               "5=canned fish"              
##  [649] "5=canned fruit"              "5=canned vegetables"        
##  [651] "5=cat food"                  "5=cereals"                  
##  [653] "5=chewing gum"               "5=chicken"                  
##  [655] "5=chocolate"                 "5=chocolate marshmallow"    
##  [657] "5=citrus fruit"              "5=cling film/bags"          
##  [659] "5=coffee"                    "5=condensed milk"           
##  [661] "5=cream"                     "5=cream cheese "            
##  [663] "5=curd"                      "5=curd cheese"              
##  [665] "5=dental care"               "5=dessert"                  
##  [667] "5=detergent"                 "5=dish cleaner"             
##  [669] "5=dishes"                    "5=dog food"                 
##  [671] "5=domestic eggs"             "5=female sanitary products" 
##  [673] "5=flour"                     "5=flower (seeds)"           
##  [675] "5=frozen dessert"            "5=frozen fish"              
##  [677] "5=frozen meals"              "5=frozen vegetables"        
##  [679] "5=fruit/vegetable juice"     "5=grapes"                   
##  [681] "5=hamburger meat"            "5=hard cheese"              
##  [683] "5=herbs"                     "5=house keeping products"   
##  [685] "5=hygiene articles"          "5=ice cream"                
##  [687] "5=instant coffee"            "5=kitchen towels"           
##  [689] "5=liquor"                    "5=liquor (appetizer)"       
##  [691] "5=liver loaf"                "5=long life bakery product" 
##  [693] "5=make up remover"           "5=male cosmetics"           
##  [695] "5=margarine"                 "5=mayonnaise"               
##  [697] "5=meat"                      "5=meat spreads"             
##  [699] "5=misc. beverages"           "5=mustard"                  
##  [701] "5=napkins"                   "5=newspapers"               
##  [703] "5=nut snack"                 "5=oil"                      
##  [705] "5=onions"                    "5=other vegetables"         
##  [707] "5=packaged fruit/vegetables" "5=pasta"                    
##  [709] "5=pastry"                    "5=pet care"                 
##  [711] "5=pickled vegetables"        "5=pip fruit"                
##  [713] "5=popcorn"                   "5=pork"                     
##  [715] "5=pot plants"                "5=processed cheese"         
##  [717] "5=prosecco"                  "5=ready soups"              
##  [719] "5=red/blush wine"            "5=rice"                     
##  [721] "5=roll products "            "5=rolls/buns"               
##  [723] "5=root vegetables"           "5=rum"                      
##  [725] "5=salt"                      "5=salty snack"              
##  [727] "5=sausage"                   "5=seasonal products"        
##  [729] "5=semi-finished bread"       "5=shopping bags"            
##  [731] "5=skin care"                 "5=sliced cheese"            
##  [733] "5=snack products"            "5=soda"                     
##  [735] "5=soft cheese"               "5=softener"                 
##  [737] "5=specialty bar"             "5=specialty cheese"         
##  [739] "5=specialty chocolate"       "5=specialty fat"            
##  [741] "5=spices"                    "5=spread cheese"            
##  [743] "5=sugar"                     "5=sweet spreads"            
##  [745] "5=tea"                       "5=tropical fruit"           
##  [747] "5=turkey"                    "5=UHT-milk"                 
##  [749] "5=vinegar"                   "5=waffles"                  
##  [751] "5=whipped/sour cream"        "5=white bread"              
##  [753] "5=white wine"                "5=whole milk"               
##  [755] "5=yogurt"                    "5=zwieback"                 
##  [757] "6=artif. sweetener"          "6=baking powder"            
##  [759] "6=bathroom cleaner"          "6=berries"                  
##  [761] "6=beverages"                 "6=bottled beer"             
##  [763] "6=bottled water"             "6=brown bread"              
##  [765] "6=butter"                    "6=butter milk"              
##  [767] "6=cake bar"                  "6=candy"                    
##  [769] "6=canned beer"               "6=canned fish"              
##  [771] "6=canned vegetables"         "6=chewing gum"              
##  [773] "6=chocolate"                 "6=chocolate marshmallow"    
##  [775] "6=cleaner"                   "6=cling film/bags"          
##  [777] "6=coffee"                    "6=cream cheese "            
##  [779] "6=curd"                      "6=dessert"                  
##  [781] "6=detergent"                 "6=dishes"                   
##  [783] "6=dog food"                  "6=domestic eggs"            
##  [785] "6=female sanitary products"  "6=flour"                    
##  [787] "6=flower (seeds)"            "6=frozen dessert"           
##  [789] "6=frozen fish"               "6=frozen meals"             
##  [791] "6=frozen potato products"    "6=frozen vegetables"        
##  [793] "6=fruit/vegetable juice"     "6=grapes"                   
##  [795] "6=hard cheese"               "6=herbs"                    
##  [797] "6=honey"                     "6=house keeping products"   
##  [799] "6=hygiene articles"          "6=ice cream"                
##  [801] "6=instant coffee"            "6=Instant food products"    
##  [803] "6=jam"                       "6=light bulbs"              
##  [805] "6=long life bakery product"  "6=male cosmetics"           
##  [807] "6=margarine"                 "6=mayonnaise"               
##  [809] "6=meat spreads"              "6=misc. beverages"          
##  [811] "6=mustard"                   "6=napkins"                  
##  [813] "6=newspapers"                "6=nut snack"                
##  [815] "6=oil"                       "6=onions"                   
##  [817] "6=other vegetables"          "6=packaged fruit/vegetables"
##  [819] "6=pasta"                     "6=pastry"                   
##  [821] "6=pet care"                  "6=photo/film"               
##  [823] "6=pickled vegetables"        "6=pip fruit"                
##  [825] "6=pot plants"                "6=processed cheese"         
##  [827] "6=pudding powder"            "6=red/blush wine"           
##  [829] "6=roll products "            "6=rolls/buns"               
##  [831] "6=root vegetables"           "6=rubbing alcohol"          
##  [833] "6=salad dressing"            "6=salty snack"              
##  [835] "6=sauces"                    "6=semi-finished bread"      
##  [837] "6=shopping bags"             "6=sliced cheese"            
##  [839] "6=snack products"            "6=soda"                     
##  [841] "6=soft cheese"               "6=soups"                    
##  [843] "6=specialty bar"             "6=specialty cheese"         
##  [845] "6=specialty chocolate"       "6=spread cheese"            
##  [847] "6=sugar"                     "6=sweet spreads"            
##  [849] "6=tropical fruit"            "6=UHT-milk"                 
##  [851] "6=vinegar"                   "6=waffles"                  
##  [853] "6=whipped/sour cream"        "6=white bread"              
##  [855] "6=white wine"                "6=whole milk"               
##  [857] "6=yogurt"                    "7=baking powder"            
##  [859] "7=beverages"                 "7=bottled beer"             
##  [861] "7=bottled water"             "7=brown bread"              
##  [863] "7=butter"                    "7=butter milk"              
##  [865] "7=cake bar"                  "7=candles"                  
##  [867] "7=candy"                     "7=canned beer"              
##  [869] "7=canned fish"               "7=cat food"                 
##  [871] "7=chewing gum"               "7=chocolate"                
##  [873] "7=chocolate marshmallow"     "7=coffee"                   
##  [875] "7=condensed milk"            "7=cream cheese "            
##  [877] "7=curd"                      "7=dental care"              
##  [879] "7=dessert"                   "7=detergent"                
##  [881] "7=dish cleaner"              "7=dog food"                 
##  [883] "7=domestic eggs"             "7=flour"                    
##  [885] "7=flower (seeds)"            "7=flower soil/fertilizer"   
##  [887] "7=frozen meals"              "7=frozen vegetables"        
##  [889] "7=fruit/vegetable juice"     "7=grapes"                   
##  [891] "7=hard cheese"               "7=herbs"                    
##  [893] "7=house keeping products"    "7=hygiene articles"         
##  [895] "7=ice cream"                 "7=instant coffee"           
##  [897] "7=ketchup"                   "7=light bulbs"              
##  [899] "7=liquor (appetizer)"        "7=long life bakery product" 
##  [901] "7=margarine"                 "7=mayonnaise"               
##  [903] "7=misc. beverages"           "7=napkins"                  
##  [905] "7=newspapers"                "7=nut snack"                
##  [907] "7=oil"                       "7=onions"                   
##  [909] "7=other vegetables"          "7=pasta"                    
##  [911] "7=pastry"                    "7=photo/film"               
##  [913] "7=pickled vegetables"        "7=pip fruit"                
##  [915] "7=popcorn"                   "7=processed cheese"         
##  [917] "7=rolls/buns"                "7=root vegetables"          
##  [919] "7=salty snack"               "7=sauces"                   
##  [921] "7=seasonal products"         "7=semi-finished bread"      
##  [923] "7=shopping bags"             "7=skin care"                
##  [925] "7=sliced cheese"             "7=soda"                     
##  [927] "7=soft cheese"               "7=softener"                 
##  [929] "7=soups"                     "7=specialty bar"            
##  [931] "7=specialty cheese"          "7=specialty chocolate"      
##  [933] "7=spices"                    "7=spread cheese"            
##  [935] "7=sugar"                     "7=sweet spreads"            
##  [937] "7=tropical fruit"            "7=UHT-milk"                 
##  [939] "7=waffles"                   "7=whipped/sour cream"       
##  [941] "7=white bread"               "7=white wine"               
##  [943] "7=whole milk"                "7=yogurt"                   
##  [945] "7=zwieback"                  "8=artif. sweetener"         
##  [947] "8=berries"                   "8=beverages"                
##  [949] "8=bottled beer"              "8=bottled water"            
##  [951] "8=brown bread"               "8=butter"                   
##  [953] "8=butter milk"               "8=cake bar"                 
##  [955] "8=candy"                     "8=canned beer"              
##  [957] "8=canned fish"               "8=canned vegetables"        
##  [959] "8=cat food"                  "8=chewing gum"              
##  [961] "8=chocolate"                 "8=condensed milk"           
##  [963] "8=cream cheese "             "8=curd"                     
##  [965] "8=dental care"               "8=detergent"                
##  [967] "8=domestic eggs"             "8=flour"                    
##  [969] "8=frozen dessert"            "8=frozen fish"              
##  [971] "8=frozen meals"              "8=frozen potato products"   
##  [973] "8=frozen vegetables"         "8=fruit/vegetable juice"    
##  [975] "8=grapes"                    "8=hard cheese"              
##  [977] "8=hygiene articles"          "8=jam"                      
##  [979] "8=liquor"                    "8=liquor (appetizer)"       
##  [981] "8=long life bakery product"  "8=margarine"                
##  [983] "8=mayonnaise"                "8=misc. beverages"          
##  [985] "8=mustard"                   "8=napkins"                  
##  [987] "8=newspapers"                "8=nut snack"                
##  [989] "8=oil"                       "8=other vegetables"         
##  [991] "8=pastry"                    "8=photo/film"               
##  [993] "8=pip fruit"                 "8=pot plants"               
##  [995] "8=processed cheese"          "8=red/blush wine"           
##  [997] "8=rolls/buns"                "8=root vegetables"          
##  [999] "8=salty snack"               "8=sauces"                   
## [1001] "8=seasonal products"         "8=semi-finished bread"      
## [1003] "8=shopping bags"             "8=sliced cheese"            
## [1005] "8=soda"                      "8=specialty bar"            
## [1007] "8=specialty chocolate"       "8=sugar"                    
## [1009] "8=sweet spreads"             "8=tropical fruit"           
## [1011] "8=UHT-milk"                  "8=vinegar"                  
## [1013] "8=whipped/sour cream"        "8=white bread"              
## [1015] "8=white wine"                "8=whole milk"               
## [1017] "8=yogurt"                    "9=baking powder"            
## [1019] "9=butter"                    "9=canned beer"              
## [1021] "9=cat food"                  "9=chocolate"                
## [1023] "9=citrus fruit"              "9=dessert"                  
## [1025] "9=dog food"                  "9=domestic eggs"            
## [1027] "9=flour"                     "9=flower (seeds)"           
## [1029] "9=frozen fish"               "9=frozen meals"             
## [1031] "9=frozen vegetables"         "9=hard cheese"              
## [1033] "9=hygiene articles"          "9=male cosmetics"           
## [1035] "9=margarine"                 "9=misc. beverages"          
## [1037] "9=newspapers"                "9=onions"                   
## [1039] "9=other vegetables"          "9=pastry"                   
## [1041] "9=processed cheese"          "9=rolls/buns"               
## [1043] "9=salt"                      "9=shopping bags"            
## [1045] "9=soda"                      "9=softener"                 
## [1047] "9=soups"                     "9=sugar"                    
## [1049] "9=syrup"                     "9=whipped/sour cream"       
## [1051] "9=white bread"               "9=whole milk"               
## [1053] "10=curd"                     "11=newspapers"
itemFrequencyPlot(transaction_object,topN=30,type="absolute",col=brewer.pal(8,'Pastel1'), main="Absolute Item Frequency Plot")

itemFrequencyPlot(transaction_object,topN=30,type="relative",col=brewer.pal(8,'Pastel1'), main="Absolute Item Frequency Plot")

rules <- apriori(transaction_object, parameter = list(supp=0.0001, conf=0.15,minlen=2))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##        0.15    0.1    1 none FALSE            TRUE       5   1e-04      2
##  maxlen target  ext
##      10  rules TRUE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 1 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[1054 item(s), 14963 transaction(s)] done [0.00s].
## sorting and recoding items ... [877 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 3 4 done [0.01s].
## writing ... [1468 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
rules <- sort(rules, by='confidence', decreasing = TRUE)
rules[1:50] %>% 
  inspect()
##      lhs                           rhs                         support confidence    coverage       lift count
## [1]  {6=sweet spreads}          => {2=pip fruit}           0.000133663          1 0.000133663   63.13502     2
## [2]  {6=soups}                  => {5=yogurt}              0.000133663          1 0.000133663  650.56522     2
## [3]  {7=semi-finished bread}    => {1=chicken}             0.000133663          1 0.000133663   46.61371     2
## [4]  {6=instant coffee}         => {2=hamburger meat}      0.000133663          1 0.000133663  180.27711     2
## [5]  {7=flower (seeds)}         => {4=other vegetables}    0.000133663          1 0.000133663  170.03409     2
## [6]  {6=house keeping products} => {4=whole milk}          0.000133663          1 0.000133663  134.80180     2
## [7]  {8=candy}                  => {1=ham}                 0.000133663          1 0.000133663   72.63592     2
## [8]  {8=condensed milk}         => {3=whole milk}          0.000133663          1 0.000133663   61.32377     2
## [9]  {8=root vegetables}        => {5=other vegetables}    0.000133663          1 0.000133663  748.15000     2
## [10] {8=tropical fruit}         => {6=bottled water}       0.000133663          1 0.000133663  997.53333     2
## [11] {4=finished products}      => {2=bottled water}       0.000133663          1 0.000133663   37.97716     2
## [12] {4=other vegetables,                                                                                     
##       5=popcorn}                => {1=pork}                0.000133663          1 0.000133663   36.23002     2
## [13] {1=pork,                                                                                                 
##       5=popcorn}                => {4=other vegetables}    0.000133663          1 0.000133663  170.03409     2
## [14] {4=whole milk,                                                                                           
##       6=pot plants}             => {2=whole milk}          0.000133663          1 0.000133663   15.22177     2
## [15] {2=whole milk,                                                                                           
##       6=pot plants}             => {4=whole milk}          0.000133663          1 0.000133663  134.80180     2
## [16] {3=beverages,                                                                                            
##       5=frozen dessert}         => {1=sausage}             0.000133663          1 0.000133663   19.92410     2
## [17] {1=sausage,                                                                                              
##       5=frozen dessert}         => {3=beverages}           0.000133663          1 0.000133663  650.56522     2
## [18] {4=meat,                                                                                                 
##       5=roll products }         => {3=other vegetables}    0.000133663          1 0.000133663   88.53846     2
## [19] {3=other vegetables,                                                                                     
##       4=meat}                   => {5=roll products }      0.000133663          1 0.000133663 2992.60000     2
## [20] {3=other vegetables,                                                                                     
##       5=roll products }         => {4=meat}                0.000133663          1 0.000133663 3740.75000     2
## [21] {4=meat,                                                                                                 
##       5=roll products }         => {1=tropical fruit}      0.000133663          1 0.000133663   22.53464     2
## [22] {1=tropical fruit,                                                                                       
##       4=meat}                   => {5=roll products }      0.000133663          1 0.000133663 2992.60000     2
## [23] {1=tropical fruit,                                                                                       
##       5=roll products }         => {4=meat}                0.000133663          1 0.000133663 3740.75000     2
## [24] {3=other vegetables,                                                                                     
##       4=meat}                   => {1=tropical fruit}      0.000133663          1 0.000133663   22.53464     2
## [25] {1=tropical fruit,                                                                                       
##       4=meat}                   => {3=other vegetables}    0.000133663          1 0.000133663   88.53846     2
## [26] {3=other vegetables,                                                                                     
##       5=roll products }         => {1=tropical fruit}      0.000133663          1 0.000133663   22.53464     2
## [27] {1=tropical fruit,                                                                                       
##       5=roll products }         => {3=other vegetables}    0.000133663          1 0.000133663   88.53846     2
## [28] {2=sausage,                                                                                              
##       5=cake bar}               => {3=whole milk}          0.000133663          1 0.000133663   61.32377     2
## [29] {3=whole milk,                                                                                           
##       5=cake bar}               => {2=sausage}             0.000133663          1 0.000133663  100.42282     2
## [30] {2=sausage,                                                                                              
##       9=shopping bags}          => {5=whole milk}          0.000133663          1 0.000133663  383.66667     2
## [31] {3=meat,                                                                                                 
##       5=other vegetables}       => {1=frankfurter}         0.000133663          1 0.000133663   30.85155     2
## [32] {6=dessert,                                                                                              
##       7=specialty chocolate}    => {1=sausage}             0.000133663          1 0.000133663   19.92410     2
## [33] {1=sausage,                                                                                              
##       6=dessert}                => {7=specialty chocolate} 0.000133663          1 0.000133663 2992.60000     2
## [34] {1=sausage,                                                                                              
##       7=specialty chocolate}    => {6=dessert}             0.000133663          1 0.000133663 2992.60000     2
## [35] {5=cream cheese ,                                                                                        
##       6=other vegetables}       => {1=sausage}             0.000133663          1 0.000133663   19.92410     2
## [36] {1=sausage,                                                                                              
##       5=cream cheese }          => {6=other vegetables}    0.000133663          1 0.000133663  935.18750     2
## [37] {5=semi-finished bread,                                                                                  
##       6=napkins}                => {3=whole milk}          0.000133663          1 0.000133663   61.32377     2
## [38] {3=whole milk,                                                                                           
##       5=semi-finished bread}    => {6=napkins}             0.000133663          1 0.000133663 1151.00000     2
## [39] {3=whole milk,                                                                                           
##       6=napkins}                => {5=semi-finished bread} 0.000133663          1 0.000133663 2137.57143     2
## [40] {4=sugar,                                                                                                
##       5=detergent}              => {2=canned beer}         0.000133663          1 0.000133663   65.34061     2
## [41] {2=canned beer,                                                                                          
##       5=detergent}              => {4=sugar}               0.000133663          1 0.000133663  880.17647     2
## [42] {2=canned beer,                                                                                          
##       4=sugar}                  => {5=detergent}           0.000133663          1 0.000133663 1870.37500     2
## [43] {3=pet care,                                                                                             
##       4=yogurt}                 => {2=sausage}             0.000133663          1 0.000133663  100.42282     2
## [44] {2=sausage,                                                                                              
##       3=pet care}               => {4=yogurt}              0.000133663          1 0.000133663  151.14141     2
## [45] {1=bottled beer,                                                                                         
##       4=baking powder}          => {2=tropical fruit}      0.000133663          1 0.000133663   53.24911     2
## [46] {2=tropical fruit,                                                                                       
##       4=baking powder}          => {1=bottled beer}        0.000133663          1 0.000133663   62.34583     2
## [47] {2=citrus fruit,                                                                                         
##       5=salty snack}            => {1=sausage}             0.000133663          1 0.000133663   19.92410     2
## [48] {1=sausage,                                                                                              
##       5=salty snack}            => {2=citrus fruit}        0.000133663          1 0.000133663   79.16931     2
## [49] {2=sausage,                                                                                              
##       8=shopping bags}          => {1=sausage}             0.000133663          1 0.000133663   19.92410     2
## [50] {1=sausage,                                                                                              
##       8=shopping bags}          => {2=sausage}             0.000133663          1 0.000133663  100.42282     2