R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

#################################################################
# Below activity explores Association Rules - Apriori algorithm #
# Input is a Grocery Store Transactions                         #
#################################################################
install.packages("dplyr")
## package 'dplyr' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\ryerrapati\AppData\Local\Temp\Rtmp8CPOKF\downloaded_packages
# install arules package
install.packages("arules", dependencies = TRUE)
## package 'arules' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\ryerrapati\AppData\Local\Temp\Rtmp8CPOKF\downloaded_packages
library('arules')
## Warning: package 'arules' was built under R version 3.5.2
## Loading required package: Matrix
## 
## Attaching package: 'arules'
## The following objects are masked from 'package:base':
## 
##     abbreviate, write
# install arulesViz package
install.packages("arulesViz", dependencies = TRUE)
## Warning: dependencies 'graph', 'Rgraphviz' are not available
## package 'arulesViz' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\ryerrapati\AppData\Local\Temp\Rtmp8CPOKF\downloaded_packages
library('arulesViz')
## Warning: package 'arulesViz' was built under R version 3.5.2
## Loading required package: grid
data(Groceries)
summary(Groceries)     # indicates 9835 rows
## 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 
##             2513             1903             1809             1715 
##           yogurt          (Other) 
##             1372            34055 
## 
## element (itemset/transaction) length distribution:
## sizes
##    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15 
## 2159 1643 1299 1005  855  645  545  438  350  246  182  117   78   77   55 
##   16   17   18   19   20   21   22   23   24   26   27   28   29   32 
##   46   29   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
class(Groceries)
## [1] "transactions"
## attr(,"package")
## [1] "arules"
Groceries@itemInfo[1:20,]
##               labels     level2               level1
## 1        frankfurter    sausage     meat and sausage
## 2            sausage    sausage     meat and sausage
## 3         liver loaf    sausage     meat and sausage
## 4                ham    sausage     meat and sausage
## 5               meat    sausage     meat and sausage
## 6  finished products    sausage     meat and sausage
## 7    organic sausage    sausage     meat and sausage
## 8            chicken    poultry     meat and sausage
## 9             turkey    poultry     meat and sausage
## 10              pork       pork     meat and sausage
## 11              beef       beef     meat and sausage
## 12    hamburger meat       beef     meat and sausage
## 13              fish       fish     meat and sausage
## 14      citrus fruit      fruit fruit and vegetables
## 15    tropical fruit      fruit fruit and vegetables
## 16         pip fruit      fruit fruit and vegetables
## 17            grapes      fruit fruit and vegetables
## 18           berries      fruit fruit and vegetables
## 19       nuts/prunes      fruit fruit and vegetables
## 20   root vegetables vegetables fruit and vegetables
#The following code displays the lOth to 20th transactions of the Groceries dataset. The [ 10:20] can be changed to [ 1:9835 ] to display all the transactions.
apply(Groceries@data[,10:20],2,function(r)    paste(Groceries@itemInfo[r,"labels"],collapse=", "))
##  [1] "whole milk, cereals"                                                                         
##  [2] "tropical fruit, other vegetables, white bread, bottled water, chocolate"                     
##  [3] "citrus fruit, tropical fruit, whole milk, butter, curd, yogurt, flour, bottled water, dishes"
##  [4] "beef"                                                                                        
##  [5] "frankfurter, rolls/buns, soda"                                                               
##  [6] "chicken, tropical fruit"                                                                     
##  [7] "butter, sugar, fruit/vegetable juice, newspapers"                                            
##  [8] "fruit/vegetable juice"                                                                       
##  [9] "packaged fruit/vegetables"                                                                   
## [10] "chocolate"                                                                                   
## [11] "specialty bar"
#To illustrate the Apriori algorithm, the code below does each iteration separately. Assume minimum support threshold = 0.02 (0.02 * 9853 = 198 items), get 122 itemsets total

# First, get itemsets of length 1
itemsets<-apriori(Groceries,parameter=list(minlen=1,maxlen=1,support=0.02,target="frequent itemsets"))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##          NA    0.1    1 none FALSE            TRUE       5    0.02      1
##  maxlen            target   ext
##       1 frequent itemsets FALSE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 196 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[169 item(s), 9835 transaction(s)] done [0.00s].
## sorting and recoding items ... [59 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1
## Warning in apriori(Groceries, parameter = list(minlen = 1, maxlen = 1,
## support = 0.02, : Mining stopped (maxlen reached). Only patterns up to a
## length of 1 returned!
##  done [0.00s].
## writing ... [59 set(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
summary(itemsets)                               # found 59 itemsets
## set of 59 itemsets
## 
## most frequent items:
## frankfurter     sausage         ham        meat     chicken     (Other) 
##           1           1           1           1           1          54 
## 
## element (itemset/transaction) length distribution:sizes
##  1 
## 59 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       1       1       1       1       1       1 
## 
## summary of quality measures:
##     support            count       
##  Min.   :0.02105   Min.   : 207.0  
##  1st Qu.:0.03015   1st Qu.: 296.5  
##  Median :0.04809   Median : 473.0  
##  Mean   :0.06200   Mean   : 609.8  
##  3rd Qu.:0.07666   3rd Qu.: 754.0  
##  Max.   :0.25552   Max.   :2513.0  
## 
## includes transaction ID lists: FALSE 
## 
## mining info:
##       data ntransactions support confidence
##  Groceries          9835    0.02          1
inspect(head(sort(itemsets,by="support"),10))   # lists top 10
##      items              support    count
## [1]  {whole milk}       0.25551601 2513 
## [2]  {other vegetables} 0.19349263 1903 
## [3]  {rolls/buns}       0.18393493 1809 
## [4]  {soda}             0.17437722 1715 
## [5]  {yogurt}           0.13950178 1372 
## [6]  {bottled water}    0.11052364 1087 
## [7]  {root vegetables}  0.10899847 1072 
## [8]  {tropical fruit}   0.10493137 1032 
## [9]  {shopping bags}    0.09852567  969 
## [10] {sausage}          0.09395018  924
# Second, get itemsets of length 2
itemsets<-apriori(Groceries,parameter=list(minlen=2,maxlen=2,support=0.02,target="frequent itemsets"))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##          NA    0.1    1 none FALSE            TRUE       5    0.02      2
##  maxlen            target   ext
##       2 frequent itemsets FALSE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 196 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[169 item(s), 9835 transaction(s)] done [0.00s].
## sorting and recoding items ... [59 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2
## Warning in apriori(Groceries, parameter = list(minlen = 2, maxlen = 2,
## support = 0.02, : Mining stopped (maxlen reached). Only patterns up to a
## length of 2 returned!
##  done [0.00s].
## writing ... [61 set(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
summary(itemsets)                               # found 61 itemsets
## set of 61 itemsets
## 
## most frequent items:
##       whole milk other vegetables           yogurt       rolls/buns 
##               25               17                9                9 
##             soda          (Other) 
##                9               53 
## 
## element (itemset/transaction) length distribution:sizes
##  2 
## 61 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       2       2       2       2       2       2 
## 
## summary of quality measures:
##     support            count      
##  Min.   :0.02003   Min.   :197.0  
##  1st Qu.:0.02227   1st Qu.:219.0  
##  Median :0.02613   Median :257.0  
##  Mean   :0.02951   Mean   :290.3  
##  3rd Qu.:0.03223   3rd Qu.:317.0  
##  Max.   :0.07483   Max.   :736.0  
## 
## includes transaction ID lists: FALSE 
## 
## mining info:
##       data ntransactions support confidence
##  Groceries          9835    0.02          1
inspect(head(sort(itemsets,by="support"),10))   # lists top 10
##      items                              support    count
## [1]  {other vegetables,whole milk}      0.07483477 736  
## [2]  {whole milk,rolls/buns}            0.05663447 557  
## [3]  {whole milk,yogurt}                0.05602440 551  
## [4]  {root vegetables,whole milk}       0.04890696 481  
## [5]  {root vegetables,other vegetables} 0.04738180 466  
## [6]  {other vegetables,yogurt}          0.04341637 427  
## [7]  {other vegetables,rolls/buns}      0.04260295 419  
## [8]  {tropical fruit,whole milk}        0.04229792 416  
## [9]  {whole milk,soda}                  0.04006101 394  
## [10] {rolls/buns,soda}                  0.03833249 377
# Third, get itemsets of length 3
itemsets<-apriori(Groceries,parameter=list(minlen=3,maxlen=3,support=0.02,target="frequent itemsets"))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##          NA    0.1    1 none FALSE            TRUE       5    0.02      3
##  maxlen            target   ext
##       3 frequent itemsets FALSE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 196 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[169 item(s), 9835 transaction(s)] done [0.00s].
## sorting and recoding items ... [59 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 3
## Warning in apriori(Groceries, parameter = list(minlen = 3, maxlen = 3,
## support = 0.02, : Mining stopped (maxlen reached). Only patterns up to a
## length of 3 returned!
##  done [0.00s].
## writing ... [2 set(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
summary(itemsets)                               # found 2 itemsets
## set of 2 itemsets
## 
## most frequent items:
## other vegetables       whole milk  root vegetables           yogurt 
##                2                2                1                1 
##      frankfurter          (Other) 
##                0                0 
## 
## element (itemset/transaction) length distribution:sizes
## 3 
## 2 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       3       3       3       3       3       3 
## 
## summary of quality measures:
##     support            count      
##  Min.   :0.02227   Min.   :219.0  
##  1st Qu.:0.02250   1st Qu.:221.2  
##  Median :0.02272   Median :223.5  
##  Mean   :0.02272   Mean   :223.5  
##  3rd Qu.:0.02295   3rd Qu.:225.8  
##  Max.   :0.02318   Max.   :228.0  
## 
## includes transaction ID lists: FALSE 
## 
## mining info:
##       data ntransactions support confidence
##  Groceries          9835    0.02          1
inspect(head(sort(itemsets,by="support"),10))   # lists top 10
##     items                                         support    count
## [1] {root vegetables,other vegetables,whole milk} 0.02318251 228  
## [2] {other vegetables,whole milk,yogurt}          0.02226741 219
# Fourth, get itemsets of length 4
itemsets<-apriori(Groceries,parameter=list(minlen=4,maxlen=4,support=0.02,target="frequent itemsets"))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##          NA    0.1    1 none FALSE            TRUE       5    0.02      4
##  maxlen            target   ext
##       4 frequent itemsets FALSE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 196 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[169 item(s), 9835 transaction(s)] done [0.00s].
## sorting and recoding items ... [59 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 3 done [0.00s].
## writing ... [0 set(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
summary(itemsets)                               # found 2 itemsets
## set of 0 itemsets
inspect(head(sort(itemsets,by="support"),10))   # lists top 10, No frequent 4-itemsets have been found, and the algorithm converges.

# The Apriori algorithm will now generate rules. Set minimum support threshold to 0.001 (allows more rules, presumably for the scatterplot) and minimum confidence threshold to 0.6 to generate 2,918 rules.
rules <- apriori(Groceries,parameter=list(support=0.001,confidence=0.6,target="rules"))
## Apriori
## 
## Parameter specification:
##  confidence minval smax arem  aval originalSupport maxtime support minlen
##         0.6    0.1    1 none FALSE            TRUE       5   0.001      1
##  maxlen target   ext
##      10  rules FALSE
## 
## Algorithmic control:
##  filter tree heap memopt load sort verbose
##     0.1 TRUE TRUE  FALSE TRUE    2    TRUE
## 
## Absolute minimum support count: 9 
## 
## set item appearances ...[0 item(s)] done [0.00s].
## set transactions ...[169 item(s), 9835 transaction(s)] done [0.00s].
## sorting and recoding items ... [157 item(s)] done [0.00s].
## creating transaction tree ... done [0.00s].
## checking subsets of size 1 2 3 4 5 6 done [0.02s].
## writing ... [2918 rule(s)] done [0.00s].
## creating S4 object  ... done [0.00s].
summary(rules)            # finds 2918 rules
## set of 2918 rules
## 
## rule length distribution (lhs + rhs):sizes
##    2    3    4    5    6 
##    3  490 1765  626   34 
## 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   2.000   4.000   4.000   4.068   4.000   6.000 
## 
## summary of quality measures:
##     support           confidence          lift            count      
##  Min.   :0.001017   Min.   :0.6000   Min.   : 2.348   Min.   :10.00  
##  1st Qu.:0.001118   1st Qu.:0.6316   1st Qu.: 2.668   1st Qu.:11.00  
##  Median :0.001220   Median :0.6818   Median : 3.168   Median :12.00  
##  Mean   :0.001480   Mean   :0.7028   Mean   : 3.450   Mean   :14.55  
##  3rd Qu.:0.001525   3rd Qu.:0.7500   3rd Qu.: 3.692   3rd Qu.:15.00  
##  Max.   :0.009354   Max.   :1.0000   Max.   :18.996   Max.   :92.00  
## 
## mining info:
##       data ntransactions support confidence
##  Groceries          9835   0.001        0.6
plot(rules)               # displays scatterplot
## To reduce overplotting, jitter is added! Use jitter = 0 to prevent jitter.

# Compute the 1/Support(Y) which is the slope
slope<-sort(round(rules@quality$lift/rules@quality$confidence,2))

#Display the number of times each slope appears in dataset
unlist(lapply(split(slope,f=slope),length))
##  3.91  5.17  5.44  5.73  7.17  9.05  9.17  9.53 10.64 12.08 12.42 13.22 
##  1585   940    12     7   188     1   102    55     1     4     1     5 
## 13.83 13.95 18.05 23.76 26.44 30.08 
##     2     9     3     1     1     1
#Display the top 10 rules sorted by lift
inspect(head(sort(rules,by="lift"),10))
##      lhs                        rhs                      support confidence      lift count
## [1]  {Instant food products,                                                               
##       soda}                  => {hamburger meat}     0.001220132  0.6315789 18.995654    12
## [2]  {soda,                                                                                
##       popcorn}               => {salty snack}        0.001220132  0.6315789 16.697793    12
## [3]  {ham,                                                                                 
##       processed cheese}      => {white bread}        0.001931876  0.6333333 15.045491    19
## [4]  {tropical fruit,                                                                      
##       other vegetables,                                                                    
##       yogurt,                                                                              
##       white bread}           => {butter}             0.001016777  0.6666667 12.030581    10
## [5]  {hamburger meat,                                                                      
##       yogurt,                                                                              
##       whipped/sour cream}    => {butter}             0.001016777  0.6250000 11.278670    10
## [6]  {tropical fruit,                                                                      
##       other vegetables,                                                                    
##       whole milk,                                                                          
##       yogurt,                                                                              
##       domestic eggs}         => {butter}             0.001016777  0.6250000 11.278670    10
## [7]  {liquor,                                                                              
##       red/blush wine}        => {bottled beer}       0.001931876  0.9047619 11.235269    19
## [8]  {other vegetables,                                                                    
##       butter,                                                                              
##       sugar}                 => {whipped/sour cream} 0.001016777  0.7142857  9.964539    10
## [9]  {whole milk,                                                                          
##       butter,                                                                              
##       hard cheese}           => {whipped/sour cream} 0.001423488  0.6666667  9.300236    14
## [10] {tropical fruit,                                                                      
##       other vegetables,                                                                    
##       butter,                                                                              
##       fruit/vegetable juice} => {whipped/sour cream} 0.001016777  0.6666667  9.300236    10
#Find the rules with confidence above 0.9
confidentRules<-rules[quality(rules)$confidence>0.9] 
confidentRules       # set of 127 rules
## set of 127 rules
#Plot a matrix-based visualization of the LHS v RHS of rules
#Gives a Matrix-based visualization of LHS and RHS, colored by lift and confidence, 
#NOTE: I had to change the reorder value to none instead of TRUE as the reorder value does not exist. Also, the Antecedent (LHS) in the textbook/ppt has broader groups (intervals of 20) so the graph looks that way. In this activity, the X axis has very narrow groups (intervals of 5). Hence the graph looks slightly different, but infact, they are pretty much the same!!
plot(confidentRules,method="matrix",measure=c("lift","confidence"),control=list(reorder="none")) 
## Itemsets in Antecedent (LHS)
##   [1] "{liquor,red/blush wine}"                                             
##   [2] "{curd,cereals}"                                                      
##   [3] "{soups,bottled beer}"                                                
##   [4] "{whipped/sour cream,house keeping products}"                         
##   [5] "{pastry,sweet spreads}"                                              
##   [6] "{rice,sugar}"                                                        
##   [7] "{rice,bottled water}"                                                
##   [8] "{canned fish,hygiene articles}"                                      
##   [9] "{grapes,onions}"                                                     
##  [10] "{hard cheese,oil}"                                                   
##  [11] "{root vegetables,butter,rice}"                                       
##  [12] "{herbs,whole milk,fruit/vegetable juice}"                            
##  [13] "{citrus fruit,tropical fruit,herbs}"                                 
##  [14] "{root vegetables,whipped/sour cream,flour}"                          
##  [15] "{butter,soft cheese,domestic eggs}"                                  
##  [16] "{tropical fruit,whipped/sour cream,soft cheese}"                     
##  [17] "{root vegetables,whipped/sour cream,soft cheese}"                    
##  [18] "{citrus fruit,root vegetables,soft cheese}"                          
##  [19] "{frankfurter,tropical fruit,frozen meals}"                           
##  [20] "{tropical fruit,butter,frozen meals}"                                
##  [21] "{tropical fruit,whipped/sour cream,hard cheese}"                     
##  [22] "{pork,whole milk,butter milk}"                                       
##  [23] "{pip fruit,butter milk,fruit/vegetable juice}"                       
##  [24] "{frankfurter,root vegetables,sliced cheese}"                         
##  [25] "{butter,whipped/sour cream,sliced cheese}"                           
##  [26] "{yogurt,oil,coffee}"                                                 
##  [27] "{root vegetables,onions,napkins}"                                    
##  [28] "{sausage,berries,butter}"                                            
##  [29] "{hamburger meat,tropical fruit,whipped/sour cream}"                  
##  [30] "{butter,hygiene articles,napkins}"                                   
##  [31] "{pip fruit,butter,hygiene articles}"                                 
##  [32] "{tropical fruit,butter,hygiene articles}"                            
##  [33] "{tropical fruit,domestic eggs,hygiene articles}"                     
##  [34] "{root vegetables,whipped/sour cream,hygiene articles}"               
##  [35] "{pip fruit,root vegetables,hygiene articles}"                        
##  [36] "{cream cheese ,domestic eggs,sugar}"                                 
##  [37] "{other vegetables,cream cheese ,sugar}"                              
##  [38] "{curd,domestic eggs,sugar}"                                          
##  [39] "{citrus fruit,domestic eggs,sugar}"                                  
##  [40] "{tropical fruit,domestic eggs,sugar}"                                
##  [41] "{yogurt,domestic eggs,sugar}"                                        
##  [42] "{root vegetables,whipped/sour cream,sugar}"                          
##  [43] "{pork,rolls/buns,waffles}"                                           
##  [44] "{whipped/sour cream,long life bakery product,napkins}"               
##  [45] "{tropical fruit,long life bakery product,napkins}"                   
##  [46] "{sausage,butter,long life bakery product}"                           
##  [47] "{tropical fruit,dessert,whipped/sour cream}"                         
##  [48] "{cream cheese ,domestic eggs,napkins}"                               
##  [49] "{root vegetables,butter,cream cheese }"                              
##  [50] "{pip fruit,whipped/sour cream,cream cheese }"                        
##  [51] "{sausage,pip fruit,cream cheese }"                                   
##  [52] "{citrus fruit,root vegetables,cream cheese }"                        
##  [53] "{root vegetables,butter,white bread}"                                
##  [54] "{butter,whipped/sour cream,coffee}"                                  
##  [55] "{root vegetables,domestic eggs,coffee}"                              
##  [56] "{butter,curd,domestic eggs}"                                         
##  [57] "{citrus fruit,butter,curd}"                                          
##  [58] "{domestic eggs,margarine,bottled beer}"                              
##  [59] "{pip fruit,whipped/sour cream,brown bread}"                          
##  [60] "{domestic eggs,margarine,fruit/vegetable juice}"                     
##  [61] "{butter,whipped/sour cream,soda}"                                    
##  [62] "{pip fruit,butter,pastry}"                                           
##  [63] "{tropical fruit,whipped/sour cream,fruit/vegetable juice}"           
##  [64] "{root vegetables,other vegetables,yogurt,rice}"                      
##  [65] "{root vegetables,whole milk,yogurt,rice}"                            
##  [66] "{tropical fruit,root vegetables,herbs,other vegetables}"             
##  [67] "{tropical fruit,grapes,whole milk,yogurt}"                           
##  [68] "{tropical fruit,pip fruit,yogurt,frozen meals}"                      
##  [69] "{root vegetables,other vegetables,yogurt,hard cheese}"               
##  [70] "{ham,tropical fruit,pip fruit,yogurt}"                               
##  [71] "{ham,tropical fruit,pip fruit,whole milk}"                           
##  [72] "{tropical fruit,butter,yogurt,sliced cheese}"                        
##  [73] "{tropical fruit,whole milk,butter,sliced cheese}"                    
##  [74] "{tropical fruit,root vegetables,yogurt,oil}"                         
##  [75] "{root vegetables,other vegetables,yogurt,oil}"                       
##  [76] "{root vegetables,whole milk,yogurt,oil}"                             
##  [77] "{root vegetables,other vegetables,yogurt,waffles}"                   
##  [78] "{other vegetables,curd,whipped/sour cream,cream cheese }"            
##  [79] "{citrus fruit,whole milk,whipped/sour cream,cream cheese }"          
##  [80] "{pip fruit,root vegetables,other vegetables,cream cheese }"          
##  [81] "{pip fruit,other vegetables,yogurt,cream cheese }"                   
##  [82] "{tropical fruit,butter,yogurt,white bread}"                          
##  [83] "{tropical fruit,other vegetables,butter,white bread}"                
##  [84] "{root vegetables,other vegetables,butter,white bread}"               
##  [85] "{root vegetables,whole milk,butter,white bread}"                     
##  [86] "{citrus fruit,other vegetables,yogurt,frozen vegetables}"            
##  [87] "{beef,tropical fruit,yogurt,rolls/buns}"                             
##  [88] "{tropical fruit,curd,yogurt,domestic eggs}"                          
##  [89] "{citrus fruit,tropical fruit,curd,yogurt}"                           
##  [90] "{other vegetables,butter,whipped/sour cream,napkins}"                
##  [91] "{pork,other vegetables,butter,whipped/sour cream}"                   
##  [92] "{pork,root vegetables,other vegetables,butter}"                      
##  [93] "{frankfurter,tropical fruit,root vegetables,yogurt}"                 
##  [94] "{pip fruit,root vegetables,other vegetables,brown bread}"            
##  [95] "{root vegetables,other vegetables,rolls/buns,brown bread}"           
##  [96] "{other vegetables,butter,whipped/sour cream,domestic eggs}"          
##  [97] "{tropical fruit,butter,yogurt,domestic eggs}"                        
##  [98] "{root vegetables,butter,yogurt,domestic eggs}"                       
##  [99] "{tropical fruit,butter,whipped/sour cream,fruit/vegetable juice}"    
## [100] "{whole milk,butter,whipped/sour cream,soda}"                         
## [101] "{citrus fruit,other vegetables,butter,bottled water}"                
## [102] "{whole milk,rolls/buns,soda,newspapers}"                             
## [103] "{pip fruit,other vegetables,whipped/sour cream,domestic eggs}"       
## [104] "{citrus fruit,whole milk,whipped/sour cream,domestic eggs}"          
## [105] "{tropical fruit,yogurt,whipped/sour cream,domestic eggs}"            
## [106] "{tropical fruit,other vegetables,whipped/sour cream,domestic eggs}"  
## [107] "{citrus fruit,tropical fruit,other vegetables,domestic eggs}"        
## [108] "{tropical fruit,yogurt,whipped/sour cream,fruit/vegetable juice}"    
## [109] "{tropical fruit,whole milk,whipped/sour cream,fruit/vegetable juice}"
## [110] "{pip fruit,root vegetables,yogurt,fruit/vegetable juice}"            
## [111] "{citrus fruit,other vegetables,soda,fruit/vegetable juice}"          
## [112] "{citrus fruit,whipped/sour cream,rolls/buns,pastry}"                 
## [113] "{citrus fruit,tropical fruit,root vegetables,whipped/sour cream}"    
## [114] "{pip fruit,root vegetables,other vegetables,bottled water}"          
## [115] "{tropical fruit,root vegetables,yogurt,pastry}"                      
## [116] "{sausage,tropical fruit,root vegetables,yogurt}"                     
## [117] "{sausage,tropical fruit,root vegetables,rolls/buns}"                 
## [118] "{tropical fruit,root vegetables,rolls/buns,bottled water}"           
## [119] "{tropical fruit,root vegetables,other vegetables,yogurt,oil}"        
## [120] "{tropical fruit,root vegetables,whole milk,yogurt,oil}"              
## [121] "{tropical fruit,other vegetables,whole milk,yogurt,oil}"             
## [122] "{tropical fruit,other vegetables,butter,yogurt,domestic eggs}"       
## [123] "{citrus fruit,root vegetables,whole milk,yogurt,whipped/sour cream}" 
## [124] "{citrus fruit,tropical fruit,root vegetables,whole milk,yogurt}"     
## Itemsets in Consequent (RHS)
## [1] "{bottled beer}"     "{whole milk}"       "{other vegetables}"
## [4] "{yogurt}"           "{root vegetables}"

#Visualize the top 5 rules with the highest lift and plot them
highLiftRules<-head(sort(rules,by="lift"),5) 
plot(highLiftRules,method="graph",control=list(type="items"))
## Warning: Unknown control parameters: type
## Available control parameters (with default values):
## main  =  Graph for 5 rules
## nodeColors    =  c("#66CC6680", "#9999CC80")
## nodeCol   =  c("#EE0000FF", "#EE0303FF", "#EE0606FF", "#EE0909FF", "#EE0C0CFF", "#EE0F0FFF", "#EE1212FF", "#EE1515FF", "#EE1818FF", "#EE1B1BFF", "#EE1E1EFF", "#EE2222FF", "#EE2525FF", "#EE2828FF", "#EE2B2BFF", "#EE2E2EFF", "#EE3131FF", "#EE3434FF", "#EE3737FF", "#EE3A3AFF", "#EE3D3DFF", "#EE4040FF", "#EE4444FF", "#EE4747FF", "#EE4A4AFF", "#EE4D4DFF", "#EE5050FF", "#EE5353FF", "#EE5656FF", "#EE5959FF", "#EE5C5CFF", "#EE5F5FFF", "#EE6262FF", "#EE6666FF", "#EE6969FF", "#EE6C6CFF", "#EE6F6FFF", "#EE7272FF", "#EE7575FF",  "#EE7878FF", "#EE7B7BFF", "#EE7E7EFF", "#EE8181FF", "#EE8484FF", "#EE8888FF", "#EE8B8BFF", "#EE8E8EFF", "#EE9191FF", "#EE9494FF", "#EE9797FF", "#EE9999FF", "#EE9B9BFF", "#EE9D9DFF", "#EE9F9FFF", "#EEA0A0FF", "#EEA2A2FF", "#EEA4A4FF", "#EEA5A5FF", "#EEA7A7FF", "#EEA9A9FF", "#EEABABFF", "#EEACACFF", "#EEAEAEFF", "#EEB0B0FF", "#EEB1B1FF", "#EEB3B3FF", "#EEB5B5FF", "#EEB7B7FF", "#EEB8B8FF", "#EEBABAFF", "#EEBCBCFF", "#EEBDBDFF", "#EEBFBFFF", "#EEC1C1FF", "#EEC3C3FF", "#EEC4C4FF", "#EEC6C6FF", "#EEC8C8FF",  "#EEC9C9FF", "#EECBCBFF", "#EECDCDFF", "#EECFCFFF", "#EED0D0FF", "#EED2D2FF", "#EED4D4FF", "#EED5D5FF", "#EED7D7FF", "#EED9D9FF", "#EEDBDBFF", "#EEDCDCFF", "#EEDEDEFF", "#EEE0E0FF", "#EEE1E1FF", "#EEE3E3FF", "#EEE5E5FF", "#EEE7E7FF", "#EEE8E8FF", "#EEEAEAFF", "#EEECECFF", "#EEEEEEFF")
## edgeCol   =  c("#474747FF", "#494949FF", "#4B4B4BFF", "#4D4D4DFF", "#4F4F4FFF", "#515151FF", "#535353FF", "#555555FF", "#575757FF", "#595959FF", "#5B5B5BFF", "#5E5E5EFF", "#606060FF", "#626262FF", "#646464FF", "#666666FF", "#686868FF", "#6A6A6AFF", "#6C6C6CFF", "#6E6E6EFF", "#707070FF", "#727272FF", "#747474FF", "#767676FF", "#787878FF", "#7A7A7AFF", "#7C7C7CFF", "#7E7E7EFF", "#808080FF", "#828282FF", "#848484FF", "#868686FF", "#888888FF", "#8A8A8AFF", "#8C8C8CFF", "#8D8D8DFF", "#8F8F8FFF", "#919191FF", "#939393FF",  "#959595FF", "#979797FF", "#999999FF", "#9A9A9AFF", "#9C9C9CFF", "#9E9E9EFF", "#A0A0A0FF", "#A2A2A2FF", "#A3A3A3FF", "#A5A5A5FF", "#A7A7A7FF", "#A9A9A9FF", "#AAAAAAFF", "#ACACACFF", "#AEAEAEFF", "#AFAFAFFF", "#B1B1B1FF", "#B3B3B3FF", "#B4B4B4FF", "#B6B6B6FF", "#B7B7B7FF", "#B9B9B9FF", "#BBBBBBFF", "#BCBCBCFF", "#BEBEBEFF", "#BFBFBFFF", "#C1C1C1FF", "#C2C2C2FF", "#C3C3C4FF", "#C5C5C5FF", "#C6C6C6FF", "#C8C8C8FF", "#C9C9C9FF", "#CACACAFF", "#CCCCCCFF", "#CDCDCDFF", "#CECECEFF", "#CFCFCFFF", "#D1D1D1FF",  "#D2D2D2FF", "#D3D3D3FF", "#D4D4D4FF", "#D5D5D5FF", "#D6D6D6FF", "#D7D7D7FF", "#D8D8D8FF", "#D9D9D9FF", "#DADADAFF", "#DBDBDBFF", "#DCDCDCFF", "#DDDDDDFF", "#DEDEDEFF", "#DEDEDEFF", "#DFDFDFFF", "#E0E0E0FF", "#E0E0E0FF", "#E1E1E1FF", "#E1E1E1FF", "#E2E2E2FF", "#E2E2E2FF", "#E2E2E2FF")
## alpha     =  0.5
## cex   =  1
## itemLabels    =  TRUE
## labelCol  =  #000000B3
## measureLabels     =  FALSE
## precision     =  3
## layout    =  NULL
## layoutParams  =  list()
## arrowSize     =  0.5
## engine    =  igraph
## plot  =  TRUE
## plot_options  =  list()
## max   =  100
## verbose   =  FALSE