# Apriori算法實現關聯規則挖掘
#======================= MODEL1. 輸入數據集爲transaction類型 ======================
#install.packages("arules") #Apriori算法程序包
library(arules)
data(Groceries) #調用R自帶關聯規則數據集Groceries(transaction類型的格式)
#-----------------------查看數據的詳細信息
# Groceries數據集爲雜貨店一個月的交易記錄集,包括169中商品項目,9835個記錄
head(Groceries) #查看前6條記錄
str(Groceries) #查看數據的內部結構
summary(Groceries) #查看數據的基本統計量
class(Groceries) #查看數據類型,關聯規則處理的數據類型爲“transactions”
dim(Groceries) #查看數據的維數 行數和列數
colnames(Groceries[,1:5]) #查看第1-5列的列名
#inspect(Groceries) #查看transactions數據集中的全部記錄
#--------------------- Apriori實現關聯規則
# apriori的參數設置爲支持度0.01,置信度0.1,關聯前項和後項包含的最小項目數爲2,最大項數爲15
rules=apriori(Groceries, parameter=list(support=0.01,confidence=0.1,minlen=2,maxlen=15))
# 如果需要了解某一種商品的關聯情況,可以使用appearance參數,以下爲探究與whole milk關聯的商品,設置關聯前項爲whole milk,後項不限
# rules=apriori(Groceries, parameter=list(support=0.01,confidence=0.1,minlen=2),appearance=list(lhs="whole milk",default="rhs"))
rules #查看生成的關聯規則
rules<-sort(rules,by='support') #對規則按照support從高到低排序
inspect(rules[1:10]) #查看前10條規則
# 對規則進行格式轉換並輸出
R1<-as(rules,'data.frame') #將關聯規則設置成dataframe格式
#setwd("D:\\R files\\Data")
write.csv(R1,"Groceries_apriori.csv")
#-------------------- 關聯規則可視化
#install.packages("arulesViz") #關聯規則可視化程序包
library ( arulesViz )
plot(rules, measure = c("support", "lift"), shading = "confidence") #畫出關聯結果的散點圖
plot(rules,method="grouped") #作出rules的分組圖
# 繪製Two‐key圖,其中關聯規則點的顏色深淺表示其所代表的關聯規則中所含商品的多少,商品種類越多,點的顏色越深
plot(rules,shading="order", control=list(main="Two‐key plot"))
#========================== MODEL2. 輸入數據集爲稀疏矩陣 ===========================
#setwd("D:\\R files\\Data")
# 若輸入矩陣爲其他形式,可轉換,將其變成稀疏矩陣
# 數據集testA爲簡單的輸入稀疏矩陣,7個項目和9條記錄
testA=read.csv(file="testA.csv",as.is = T,sep=",") #讀入稀疏矩陣
set<-testA
factorK<-function(X){factor(X,levels=0:1)} #建立factorK函數
T1<-as(data.frame(apply(set,2,factorK)),"transactions") #根據列對應的值是否爲1建立transaction格式的數據集
T2<-apriori(T1,parameter=list(minlen=2,supp=0.3,conf=0.5)) #得到支持度0.1,置信度0.5的關聯規則
T2<-sort(T2,by='support') #將關聯規則按支持度從高到低排序
inspect(T2[1:10])
# 對規則進行格式轉換
T3<-as(T2,'data.frame') #將關聯規則設置成dataframe格式
# 畫圖
library ( arulesViz )
plot(T2, measure = c("support", "lift"), shading = "confidence") #畫出關聯結果的散點圖
plot(T2,method="grouped") #作出分組圖
# 繪製Two‐key圖,其中關聯規則點的顏色深淺表示其所代表的關聯規則中所含商品的多少,商品種類越多,點的顏色越深
plot(T2,shading="order", control=list(main="Two‐key plot"))
# 將關聯規則轉換格式輸出
#setwd("D:\\R files\\Data")
write.csv(T3,"testA_apriori.csv")
R語言關聯規則
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
數據分析AB測試實戰項目
凡人求索
2019-02-24 14:22:22
[數據分析] 樣本、抽樣和整體,也說說對統計的理解
幾米墟
2019-02-24 14:17:48
【數據分析】python分析百度搜索關鍵詞的頻率
老張的技術
2019-02-23 00:11:55
我是如何入門、成長並進階爲數據分析師的?
雄霸天下啦
2019-02-22 23:34:29
在pandas的unstack時報ValueError: duplicate entries 錯誤
良思遠行
2019-02-22 23:21:27
一次數據分析的全過程
baoqiangwang
2019-02-22 23:18:57
Excel學習筆記一Excel圖表和數據分析
baoqiangwang
2019-02-22 23:18:56
數據分析師必備知識點
程序猿先森
2019-02-22 22:34:48
有趣的對聯
daniel_yang
2019-02-22 22:16:49
獨家揭祕!阿里大規模數據中心的性能分析
代碼派
2019-02-22 21:58:32
談談企業的數據工作!——企業的數據分析能力金字塔
Sherlynn
2019-02-22 21:52:33
如何用FineReport報表進行數據可視化分析?
Sherlynn
2019-02-22 21:52:30
圖表推薦:甘特圖與框架圖,大數據流向地圖重磅來襲!
Sherlynn
2019-02-22 21:52:30
談談企業的數據工作!——企業的數據分析能力金字塔
Sherlynn
2019-02-22 21:52:29
零基礎怎樣進行大數據的入門級學習?
燕大俠V
2019-02-22 20:48:17