# load the grocery data into a sparse matrix
library(arules)
groceries <- read.transactions("groceries.csv", sep = ",")
summary(groceries)
# look at the first five transactions
inspect(groceries[1:5])
# examine the frequency of items
itemFrequency(groceries[, 1:3])
# plot the frequency of items
itemFrequencyPlot(groceries, support = 0.1)
itemFrequencyPlot(groceries, topN = 20)
# a visualization of the sparse matrix for the first five transactions
image(groceries[1:5])
# visualization of a random sample of 100 transactions
image(sample(groceries, 100))
## Step 3: Training a model on the data ----
# default settings result in zero rules learned
apriori(groceries)
# set better support and confidence levels to learn more rules
groceryrules <- apriori(groceries, parameter = list(support =
0.006, confidence = 0.25, minlen = 2))
groceryrules
## Step 4: Evaluating model performance ----
# summary of grocery association rules
summary(groceryrules)
# look at the first three rules
inspect(groceryrules[1:3])
# with a data.table
library(DT)
inspectDT(groceryrules)
library(DT)
inspectDT(groceryrules)
##### Chapter 8: Association Rules -------------------
## Example: Identifying Frequently-Purchased Groceries ----
## Step 2: Exploring and preparing the data ----
# load the grocery data into a sparse matrix
library(arules)
groceries <- read.transactions("groceries.csv", sep = ",")
summary(groceries)
# look at the first five transactions
inspect(groceries[1:5])
# examine the frequency of items
itemFrequency(groceries[, 1:3])
# plot the frequency of items
itemFrequencyPlot(groceries, support = 0.1)
itemFrequencyPlot(groceries, topN = 20)
# a visualization of the sparse matrix for the first five transactions
image(groceries[1:5])
# visualization of a random sample of 100 transactions
image(sample(groceries, 100))
## Step 3: Training a model on the data ----
# default settings result in zero rules learned
apriori(groceries)
# set better support and confidence levels to learn more rules
groceryrules <- apriori(groceries, parameter = list(support =
0.006, confidence = 0.25, minlen = 2))
groceryrules
## Step 4: Evaluating model performance ----
# summary of grocery association rules
summary(groceryrules)
# look at the first three rules
inspect(groceryrules[1:3])
# with a data.table
library(DT)
inspectDT(groceryrules)
groceryrules
# summary of grocery association rules
summary(groceryrules)
inspect(groceryrules[1:3])
library(DT)
inspectDT(groceryrules)
library(arulesViz)
inspectDT(groceryrules)
##### Chapter 8: Association Rules -------------------
## Example: Identifying Frequently-Purchased Groceries ----
library(arules)
library(arulesViz)
library(DT)
## Step 2: Exploring and preparing the data ----
# load the grocery data into a sparse matrix
groceries <- read.transactions("groceries.csv", sep = ",")
summary(groceries)
# look at the first five transactions
inspect(groceries[1:5])
# examine the frequency of items
itemFrequency(groceries[, 1:3])
# plot the frequency of items
itemFrequencyPlot(groceries, support = 0.1)
itemFrequencyPlot(groceries, topN = 20)
# a visualization of the sparse matrix for the first five transactions
image(groceries[1:5])
# visualization of a random sample of 100 transactions
image(sample(groceries, 100))
## Step 3: Training a model on the data ----
# default settings result in zero rules learned
apriori(groceries)
# set better support and confidence levels to learn more rules
groceryrules <- apriori(groceries, parameter = list(support =
0.006, confidence = 0.25, minlen = 2))
groceryrules
## Step 4: Evaluating model performance ----
# summary of grocery association rules
summary(groceryrules)
# look at the first three rules
inspect(groceryrules[1:3])
# with a data.table
inspectDT(groceryrules)
plot(groceryrules)
head(quality(groceryrules))
plot(groceryrules, measure = c("support", "lift"), shading = "confidence")
plot(groceryrules, method = "two-key plot")
subrules <- groceryrules[quality(groceryrules)$confidence > 0.5]
plot(subrules, method = "matrix", measure = "lift")
plot(subrules, method = "matrix3D", measure = "lift")
plot(groceryrules, method = "grouped")
subrules2 <- head(groceryrules, n = 50, by = "lift")
plot(subrules2, method = "graph")
plot(subrules2, method = "paracoord")
oneRule <- sample(groceryrules, 1)
inspect(oneRule)
plot(oneRule, method = "doubledecker", data = groceries)
plot(berryrules, method = "graph")
# finding subsets of rules containing any berry items
berryrules <- subset(groceryrules, items %in% "berries")
inspect(berryrules)
plot(berryrules, method = "graph")
plot(berryrules, method = "paracoord")
plot(berryrules, method = "graph")
plot(berryrules, method = "paracoord")
# writing the rules to a CSV file
write(groceryrules, file = "groceryrules.csv",
sep = ",", quote = TRUE, row.names = FALSE)
# converting the rule set to a data frame
groceryrules_df <- as(groceryrules, "data.frame")
str(groceryrules_df)
groceries <- read.transactions("groceries.csv", sep = ",")
summary(groceries)
inspect(groceries[1:5])
itemFrequency(groceries[, 1:3])
itemFrequencyPlot(groceries, support = 0.1)
itemFrequencyPlot(groceries, topN = 20)
image(groceries[1:5])
image(sample(groceries, 100))
apriori(groceries)
groceryrules <- apriori(groceries, parameter = list(support =
0.006, confidence = 0.25, minlen = 2))
groceryrules
summary(groceryrules)
inspect(groceryrules[1:3])
inspect(groceryrules[1:5])
inspect(groceryrules[1:10])
inspectDT(groceryrules)
inspect(groceryrules[order(support())])
inspect(groceryrules[1:10,order(support())])
inspect(groceryrules[1:10,order(support)])
inspect(groceryrules[order(support)])
groceryrules[order(support)]
groceryrules[,order(support)]
groceryrules[order(support),]
groceryrules
View(groceryrules)
top.support <- sort(rules, decreasing = TRUE, na.last = NA, by = "support")
top.support <- sort(groceryrules, decreasing = TRUE, na.last = NA, by = "support")
inspect(head(top.support, 10))
top.confidence <- sort(groceryrules, decreasing = TRUE, na.last = NA, by = "confidence")
inspect(head(top.confidence, 10))
top.lift <- sort(groceryrules, decreasing = TRUE, na.last = NA, by = "lift")
inspect(head(top.lift, 10))
inspectDT(groceryrules)
inspectDT(groceryrules)
inspectDT(groceryrules)
p <- inspectDT(groceryrules)
htmlwidgets::saveWidget(p, "arules.html", selfcontained = FALSE)
browseURL("arules.html")
plot(groceryrules)
head(quality(groceryrules))
plot(groceryrules, measure = c("support", "lift"), shading = "confidence")
plot(groceryrules, method = "two-key plot")
subrules <- groceryrules[quality(groceryrules)$confidence > 0.5]
plot(subrules, method = "matrix", measure = "lift")
plot(subrules, method = "matrix3D", measure = "lift")
plot(groceryrules, method = "grouped")
subrules2 <- head(groceryrules, n = 50, by = "lift")
plot(subrules2, method = "graph")
plot(subrules2, method = "paracoord")
oneRule <- sample(groceryrules, 1)
inspect(oneRule)
plot(oneRule, method = "doubledecker", data = groceries)
plot(groceryrules)
plot(groceryrules, measure = c("support", "lift"), shading = "confidence")
plot(groceryrules, method = "two-key plot")
plot(groceryrules)
plot(groceryrules, measure = c("support", "lift"), shading = "confidence")
plot(groceryrules, method = "two-key plot")
subrules <- groceryrules[quality(groceryrules)$confidence > 0.5]
plot(subrules, method = "matrix", measure = "lift")
plot(subrules, method = "matrix3D", measure = "lift")
plot(groceryrules, method = "grouped")
subrules2 <- head(groceryrules, n = 50, by = "lift")
plot(subrules2, method = "graph")
plot(subrules2, method = "paracoord")
oneRule <- sample(groceryrules, 1)
inspect(oneRule)
plot(oneRule, method = "doubledecker", data = groceries)
subrules <- groceryrules[quality(groceryrules)$confidence > 0.5]
plot(subrules, method = "matrix", measure = "lift")
plot(subrules, method = "matrix3D", measure = "lift")
plot(groceryrules, method = "grouped")
subrules2 <- head(groceryrules, n = 50, by = "lift")
plot(subrules2, method = "graph")
plot(subrules2, method = "paracoord")
oneRule <- sample(groceryrules, 1)
inspect(oneRule)
plot(oneRule, method = "doubledecker", data = groceries)
plot(groceryrules, method = "grouped")
subrules2 <- head(groceryrules, n = 50, by = "lift")
plot(subrules2, method = "graph")
plot(subrules2, method = "paracoord")
oneRule <- sample(groceryrules, 1)
inspect(oneRule)
plot(oneRule, method = "doubledecker", data = groceries)
oneRule <- sample(groceryrules, 1)
inspect(oneRule)
plot(oneRule, method = "doubledecker", data = groceries)
oneRule <- sample(groceryrules, 1)
inspect(oneRule)
plot(oneRule, method = "doubledecker", data = groceries)
inspect(sort(groceryrules, by = "lift")[1:5])
berryrules <- subset(groceryrules, items %in% "berries")
berryrules <- subset(groceryrules, items %in% "berries")
inspect(berryrules)
plot(berryrules, method = "graph")
plot(berryrules, method = "paracoord")
write(groceryrules, file = "groceryrules.csv",
sep = ",", quote = TRUE, row.names = FALSE)
groceryrules_df <- as(groceryrules, "data.frame")
groceryrules_df
str(groceryrules_df)
library(arules)
library(arulesViz)
library(DT)
groceries <- read.transactions("groceries.csv", sep = ",")
summary(groceries)
inspect(groceries[1:5])
itemFrequency(groceries[, 1:3])
itemFrequencyPlot(groceries, support = 0.1)
itemFrequencyPlot(groceries, topN = 20)
image(groceries[1:5])
image(sample(groceries, 100))
apriori(groceries)
groceryrules <- apriori(groceries, parameter = list(support =
0.006, confidence = 0.25, minlen = 2))
groceryrules
summary(groceryrules)
inspect(groceryrules[1:10])
top.support <- sort(groceryrules, decreasing = TRUE, na.last = NA, by = "support")
inspect(head(top.support, 10))
top.confidence <- sort(groceryrules, decreasing = TRUE, na.last = NA, by = "confidence")
inspect(head(top.confidence, 10))
top.lift <- sort(groceryrules, decreasing = TRUE, na.last = NA, by = "lift")
inspect(head(top.lift, 10))
p <- inspectDT(groceryrules)
htmlwidgets::saveWidget(p, "arules.html", selfcontained = FALSE)
browseURL("arules.html")
plot(groceryrules)
plot(groceryrules, measure = c("support", "lift"), shading = "confidence")
plot(groceryrules, method = "two-key plot")
subrules <- groceryrules[quality(groceryrules)$confidence > 0.5]
plot(subrules, method = "matrix", measure = "lift")
plot(subrules, method = "matrix3D", measure = "lift")
plot(groceryrules, method = "grouped")
subrules2 <- head(groceryrules, n = 50, by = "lift")
plot(subrules2, method = "graph")
plot(subrules2, method = "paracoord")
oneRule <- sample(groceryrules, 1)
inspect(oneRule)
plot(oneRule, method = "doubledecker", data = groceries)
inspect(sort(groceryrules, by = "lift")[1:5])
berryrules <- subset(groceryrules, items %in% "berries")
inspect(berryrules)
plot(berryrules, method = "graph")
plot(berryrules, method = "paracoord")
write(groceryrules, file = "groceryrules.csv",
sep = ",", quote = TRUE, row.names = FALSE)
groceryrules_df <- as(groceryrules, "data.frame")
groceryrules_df
str(groceryrules_df)
library(arules)
library(arulesViz)
library(DT)
groceries <- read.transactions("groceries.csv", sep = ",")
summary(groceries)
inspect(groceries[1:5])
itemFrequency(groceries[, 1:3])
itemFrequencyPlot(groceries, support = 0.1)
itemFrequencyPlot(groceries, topN = 20)
image(groceries[1:5])
image(sample(groceries, 100))
apriori(groceries)
groceryrules <- apriori(groceries, parameter = list(support =
0.006, confidence = 0.25, minlen = 2))
groceryrules
summary(groceryrules)
inspect(groceryrules[1:10])
top.support <- sort(groceryrules, decreasing = TRUE, na.last = NA, by = "support")
inspect(head(top.support, 10))
top.confidence <- sort(groceryrules, decreasing = TRUE, na.last = NA, by = "confidence")
inspect(head(top.confidence, 10))
top.lift <- sort(groceryrules, decreasing = TRUE, na.last = NA, by = "lift")
inspect(head(top.lift, 10))
p <- inspectDT(groceryrules)
htmlwidgets::saveWidget(p, "arules.html", selfcontained = FALSE)
browseURL("arules.html")
plot(groceryrules)
plot(groceryrules, measure = c("support", "lift"), shading = "confidence")
plot(groceryrules, method = "two-key plot")
subrules <- groceryrules[quality(groceryrules)$confidence > 0.5]
plot(subrules, method = "matrix", measure = "lift")
plot(subrules, method = "matrix3D", measure = "lift")
plot(groceryrules, method = "grouped")
subrules2 <- head(groceryrules, n = 50, by = "lift")
plot(subrules2, method = "graph")
plot(subrules2, method = "paracoord")
oneRule <- sample(groceryrules, 1)
inspect(oneRule)
plot(oneRule, method = "doubledecker", data = groceries)
inspect(sort(groceryrules, by = "lift")[1:5])
berryrules <- subset(groceryrules, items %in% "berries")
inspect(berryrules)
plot(berryrules, method = "graph")
plot(berryrules, method = "paracoord")
write(groceryrules, file = "groceryrules.csv",
sep = ",", quote = TRUE, row.names = FALSE)
groceryrules_df <- as(groceryrules, "data.frame")
groceryrules_df
str(groceryrules_df)
