-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathAssignment.Rmd
More file actions
96 lines (74 loc) · 2.34 KB
/
Assignment.Rmd
File metadata and controls
96 lines (74 loc) · 2.34 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
93
94
95
96
---
title: "Cafe Great dataset analysis"
author: "Gaurang Swarge"
date: "7/10/2018"
output: html_document
---
```{r setup}
knitr::opts_chunk$set(fig.width=12, fig.height=8, fig.path='Figs/', echo=FALSE, warning=FALSE, message=FALSE)
options(width = 100)
library(plyr)
library(data.table)
library(dplyr)
library(ggplot2)
library(stringr)
library(DT)
library(scales)
library(knitr)
library(plotly)
library(arules)
library(arulesViz)
library(visNetwork)
library(igraph)
library(kableExtra)
library(tidyverse)
library("RColorBrewer")
#Reading all the Datasets
orders <- fread("Cafe Great Transaction Data set.csv")
orders$`Item Desc` <- as.factor(orders$`Item Desc`)
orders$Category <- as.factor(orders$Category)
orders$date <- as.Date(as.character(orders$date),format="%dd-%mmm-%yy")
head(orders)
```
### Price Analysis
```{r PriceAnalysis}
summary(orders)
temp <- orders %>%
filter(orders)
```
## Association Rules
```{r AssociationRules}
data1 <- split(orders$`Item Desc`,orders$`Bill Number`)
head(data1,25)
#converting to class transactions
total_transactions<-as(data1,"transactions")
dim(total_transactions)
inspect(total_transactions[1:2])
# calculates support for frequent items
frequentItems <- eclat (total_transactions, parameter = list(supp = 0.01, maxlen = 15))
inspect(frequentItems)
#frequent Items in the transactions
itemFrequencyPlot(total_transactions,topN=30,type="absolute")
#Running the Apriori algorithm
basket_rules <- apriori(total_transactions, parameter = list(support = 0.001, confidence = 0.10, minlen=2,maxlen=10,target = "rules"))
basket_rules
#Removing Redundent Rules (rules that are subset of larger rules)
# get subset rules in vector
subsetRules <- which(colSums(is.subset(basket_rules, basket_rules)) > 1)
length(subsetRules)
# remove subset rules
basket_rules <- basket_rules[-subsetRules]
basket_rules
# 'high-confidence' rules.
basket_rules_conf <- sort (basket_rules, by="confidence", decreasing=TRUE)
# show the support, lift and confidence for all rules
inspect(head(basket_rules_conf))
# High-Lift Rules
basket_rules_lift <- sort (basket_rules, by="lift", decreasing=TRUE)
# show the support, lift and confidence for all rules
inspect(head(basket_rules_lift))
plot(basket_rules,control=list(col=brewer.pal(11,"Spectral")),main="")
plot(basket_rules, method = "graph")
plotly_arules(basket_rules)
inspectDT(basket_rules)
```