-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy path11arules.R
More file actions
92 lines (62 loc) · 1.94 KB
/
11arules.R
File metadata and controls
92 lines (62 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
library(magrittr)
set.seed(270)
faults <- data.frame(
serialNumber = sample(1:20, 100, replace = T),
faultCode = paste("fc", sample(1:12, 100, replace = T), sep = "")
)
faults <- unique(faults)
# table(faults$serialNumber)
# table(faults$faultCode)
str(faults)
faults$indicator <- TRUE
faults_wide <- tidyr::spread(faults, key = faultCode, value = indicator)
# Drop the transaction ID
faults_matrix <- as.matrix(faults_wide[,-1])
# Clean up the missing values to be FALSE
faults_matrix[is.na(faults_matrix)] <- FALSE
faults_transactions <- as(faults_matrix, "transactions")
arules::itemFrequencyPlot(faults_transactions, topN = 10)
###
install.packages("arules")
install.packages("arulesViz")
library(arules)
data(Groceries)
str(Groceries)
arules::itemFrequencyPlot(Groceries, topN = 10, type = "absolute")
arules::itemFrequencyPlot(Groceries, topN = 15)
rules <-
arules::apriori(Groceries, parameter = list(
supp = 0.001,
conf =
0.9,
maxlen = 4
))
rules
options(digits = 2)
rules <- arules::sort(rules, by = "lift", decreasing = TRUE)
arules::inspect(rules[1:5])
rules <- arules::sort(rules, by = "confidence", decreasing = TRUE)
arules::inspect(rules[1:5])
tab <- arules::crossTable(Groceries)
tab[1:3, 1:3]
tab["bottled beer","bottled beer"]
tab["bottled beer","canned beer"]
beer.rules <- arules::apriori(
data = Groceries,
parameter = list(support
= 0.0015, confidence = 0.3),
appearance = list(default = "lhs",
rhs = "bottled beer"))
beer.rules
beer.rules <- arules::sort(beer.rules, decreasing = TRUE, by = "lift")
tab["bottled beer", "red/blush wine"]
tab["red/blush wine", "red/blush wine"]
48/189
tab["white wine", "white wine"]
tab["bottled beer", "white wine"]
22/187
library(arulesViz)
plot(beer.rules,
method = "graph",
measure = "lift",
shading = "confidence")