-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathasso.R
56 lines (47 loc) · 2.09 KB
/
asso.R
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
library(arules)
datasets<-read.csv("Groceries_dataset.csv")
newMat<-as.data.frame(matrix(F,ncol=length(unique(datasets$itemDescription)),nrow = length(unique(datasets$Member_number))))
colnames(newMat)<-unique(datasets$itemDescription)
rownames(newMat)<-unique(datasets$Member_number)
for (i in 1:nrow(datasets)) {
variable<-datasets[i,]
newMat[as.character(variable$Member_number),as.character(variable$itemDescription)]<-T
}
items2.df = data.frame(item1=c(T,F,F,T,T,F,T,T,T), item2=c(T,T,T,T,F,T,F,T,T), item3=c(F,F,T,F,T,T,T,T,T),item4=c(F,T,F,T,F,F,F,F,F), item5=c(T,F,F,F,F,F,F,T,F))
items.df = data.frame(newMat)
str(items.df)
rules <- apriori(items.df,parameter = list(minlen=3, supp=0.001282709, conf=0.8), control = list(verbose=F))
#rules <- apriori(items.df,parameter = list(arem="quot",minlen=2,maxlen=5,supp=0.01,conf=0.8))
rules.sorted
rules.sorted <- sort(rules, by="lift")
resus<-inspect(rules.sorted[1:50])
subset.matrix <- is.subset(rules.sorted,rules.sorted)
subset.matrix
subset.matrix[lower.tri(subset.matrix, diag=T)] <- F
subset.matrix
redundant <- apply(subset.matrix, 2, any)
redundant
rules.pruned <- rules.sorted[!redundant]
#inspect(rules.pruned)
itemsets <- eclat(items.df, parameter = list(supp = 0.001, maxlen = 15))
itemsets.sorted <- sort(itemsets)
inspect(itemsets.sorted[1:50])
head(as(items(itemsets.sorted), "list"))
itemsets <- weclat(items.df, parameter = list(supp = 0.1, maxlen = 15))
itemsets.sorted <- sort(itemsets)
inspect(itemsets.sorted[1:5])
head(as(items(itemsets.sorted), "list"))
is.subset(rules.sorted,rules.sorted)
liner<-as.data.frame(matrix(nrow = nrow(items.df),ncol = 2))
colnames(liner)<-c("client","panier")
for (i in 1:nrow(items.df)) {
line<-rownames(items.df[i,])
liner[i,]$client<-line
liner[i,]$panier<-paste((colnames(items.df[line,!items.df[line, ]==FALSE])), collapse = ',')
}
library(MASS)
items.df$canned.beer
full.model <- glm(canned.beer ~ ., data = items.df, family = "binomial")
step.model <- stepAIC(full.model, direction = "both", trace = FALSE)
summary(full.model)
summary(step.model)