-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path17-Association-Rules.Rmd
138 lines (80 loc) · 1.73 KB
/
17-Association-Rules.Rmd
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
---
"Birliktelik Kuralları (Association Rules)"
---
```{r}
library(arules)
bookbaskets<-read.transactions("bookdata.tsv.gz",
format="single",
header = T,
sep = "\t",
cols=c("userid","title"),
rm.duplicates = T)
class(bookbaskets)
```
```{r}
bookbaskets
```
```{r}
dim(bookbaskets)
```
```{r}
colnames(bookbaskets)[1:5]
```
```{r}
rownames(bookbaskets)[1:5]
```
```{r}
basketSizes<-size(bookbaskets)
summary(basketSizes)
```
```{r}
quantile(basketSizes, probs = seq(0,1,0.1))
```
```{r}
bookCount<-itemFrequency(bookbaskets,"absolute")
summary(bookCount)
```
```{r}
orderedBooks<-sort(bookCount, decreasing = T)
knitr::kable(orderedBooks[1:10])
```
```{r}
orderedBooks[1]/nrow(bookbaskets)
```
```{r}
bookbaskets_use<-bookbaskets[basketSizes>1]
dim(bookbaskets_use)
```
```{r}
rules<-apriori(bookbaskets_use,
parameter = list(support=0.002, confidence=0.75) )
summary(rules)
```
```{r}
measures<-interestMeasure(rules,
measure = c("coverage","fishersExactTest"),
transactions = bookbaskets_use)
summary(measures)
```
```{r}
library(magrittr)
rules %>%
sort(., by="confidence") %>%
head(., n=5) %>%
inspect(.)
```
```{r}
brules<-apriori(bookbaskets_use,
parameter = list(support=0.001, confidence=0.6),
appearance = list(rhs=c("The Lovely Bones: A Novel"),
default="lhs")
)
summary(brules)
```
```{r}
brules %>%
sort(., by="confidence") %>%
lhs(.) %>%
head(., n=5) %>%
inspect()
```