library(arules) # association rules
library(arulesViz) # data visualization of association rules
library(RColorBrewer)
groceries <- read.transactions("groceries.csv", format="basket", sep=",")
summary(groceries)
#########進一步查看數據集的信息
class(groceries)
groceries
dim(groceries)
colnames(groceries)[1:5]
rownames(groceries)[1:5]
basketSize<-size(groceries)
summary(basketSize)
sum(basketSize) #count of all 1s in the sparse matrix
itemFreq <- itemFrequency(groceries)
sum(itemFreq) #本質上代表"平均一個transaction購買的item個數"
itemCount <- (itemFreq/sum(itemFreq))*sum(basketSize)#####itemCount表示每個item出現的次數。Support(X) = Xs / N, N是總的交易數,Xs就是Item X###的count。itemXCount = N * itemXFreq = (ItemXFreq / sum(itemFreq)) * sum(basketSize) ##
summary(itemCount)
orderedItem <- sort(itemCount, decreasing = )
orderedItem[1:10]
orderedItemFreq <- sort(itemFrequency(groceries), decreasing=)
orderedItemFreq[1:10]
itemFrequencyPlot(groceries, support=0.1)
itemFrequencyPlot(groceries, topN=10, horiz=T)
inspect(groceries[1:5])
image(groceries[1:10])
image(sample(groceries,100))
#############
groceryrules <- apriori(groceries, parameter = list(support = 0.006, confidence = 0.25, minlen = 2))
######inspect查看規則記錄
inspect(groceryrules[1:10])
##########評估
ordered_groceryrules <- sort(groceryrules, by="lift")
inspect(ordered_groceryrules[1:5])
####### 搜索規則
yogurtrules <- subset(groceryrules, items %in% c("yogurt"))
inspect(yogurtrules)
###########
qualityMeasures<-interestMeasure(groceryrules,c(“coverage”,”fishersExactTest”,”conviction”, “chiSquared”), transactions=groceries)
summary(qualityMeasures)
########
write(groceryrules, file=”groceryrules.csv”, sep=”,”, quote=TRUE, row.names=FALSE)
轉化data.frame分析:
groceryrules_df <- as(groceryrules, “data.frame”)?
str(groceryrules_df)
########### 可視化
plot(groceryrules, method=”scatterplot”,control=list(jitter=2, col = rev(brewer.pal(9, “Greens”))), shading = “lift”)
plot(groceryrules, control=list(jitter=2, col = rev(brewer.pal(9, “Greens”))), shading = “lift”,method = ‘grouped’)
關聯規則demo
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.