關聯規則demo

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’)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章