說明
關聯挖掘常被用於發現隱藏在事務資料集間的一些有意義的關聯,演算法首先找到所有頻繁項集,然後從這些頻繁項集中生成強規則。apriori是最為著名的關聯規則挖掘技術。該演算法先找到頻繁個體項集,然後再通過廣度優先搜尋策略生成更大的頻繁項集,直至演算法最後再也找不到新的頻繁集而結束。
操作載入groceries,在arules包中使用apriori演算法進行關聯分析。
data
("groceries")
summary
("groceries")
length class mode
1 character
character
itemfrequencyplot(groceries,support =0.1,cex.names = 0.8,topn = 5)
使用apriori函式找到支援度超過0.01,置信度在0.5以上的關聯規
rules = apriori(groceries,parameter = list(supp = 0.001,conf = 0.5,target = "rules"))
summary(rules)
set of 5668 rules
rule length distribution (lhs + rhs):sizes
23456
111461
3211
93946
min. 1st qu. median
mean
3rd qu. max.
2.00
3.00
4.00
3.92
4.00
6.00
summary of quality measures:
support confidence lift
min. :0.001017
min. :0.5000
min. : 1.957
1st qu.:0.001118
1st qu.:0.5455
1st qu.: 2.464
median :0.001322
median :0.6000
median : 2.899
mean :0.001668
mean :0.6250
mean : 3.262
3rd qu.:0.001729
3rd qu.:0.6842
3rd qu.: 3.691
max. :0.022267
max. :1.0000
max. :18.996
mining info:
data ntransactions support confidence
groceries 9835
0.001
0.5
檢視前面一部分規則:
inspect(head(rules))
lhs rhs support confidence lift
[1] =>
0.001118454
0.7333333
2.870009
[2] =>
0.001220132
0.5217391
2.836542
[3] =>
0.001321810
0.5909091
2.312611
[4] =>
0.001321810
0.5652174
2.212062
[5] =>
0.001321810
0.5200000
2.035097
[6] =>
0.003660397
0.6428571
2.515917
根據置信度對規則進行排序並檢視前面的部分規則:
rules = sort(rules,by = "confidence",decreasing = true)
inspect(head(rules))
lhs rhs support confidence lift
[1] =>
0.001220132
13.913649
[2] =>
0.001118454
13.913649
[3] =>
0.001016777
13.913649
[4] =>
0.001728521
13.913649
[5] =>
0.001016777
13.913649
[6] =>
0.001016777
15.168156
原理
關聯規則挖掘的目的是找出事務資料庫中項集間的關聯。典型的,關聯規則挖掘的過程包括找到大於最小支援度的項集,然後基於頻繁項集生成置信度大於最小置信度的強規則(例如milk =>bread,顧客購買了牛奶後很可能再同時買麵包)。乙個關聯規則可以形式化定義為 x => y,其中x ,y都是無關項集。我們可以通過支援度和置信度這兩個值來評估規則的強弱。支援度和置信度這兩個值來評估規則的強弱。支援度表示了某個某個規則在資料集中出現的頻率,而置信度則代表項集x與y同時出現在個事務中的概率。
由於支援度與置信度僅對判斷規則強弱有效,有時一些高置信度與高支援度的規則可能是冗餘的,因此,我們使用第三個指標——提公升度,來評估規則的質量(級別)。從定義上看,提公升度代表了項集x與項集y隨機共現關係上的規則強度。
apriori是最廣為人知的關聯規則挖掘演算法,它依靠逐層廣度優先策略來生成候選項集,演算法首先逐層的找到所有的頻繁項集(項集支援度大於給定閾值),例如,先找到1-頻繁項集,然後基於1-頻繁項集找到2-頻繁項集,依次遞迴,基於k-頻繁項集生成新的k+1-頻繁項集,直到找不到新的繁榮項集。
最後,通過繁榮項集產生關聯規則。
groceries資料集,包括了9835事務,被分成169個類別。還有例如最頻繁項集、項集分布等資訊,也可以使用itemfrequencyplot函式來繪製支援度超過0.1的五個最步頻繁項。
我們利用演算法找到了支援度大於0.001,置信度大於0.5的規則,並使用summary函式來檢查這些規則的詳細資訊,從輸出的結果可知,使用apriori演算法獲得了5668個符合條件的規則。我們還進一步獲取了有關規則長度的分布情況,質量評估資訊,挖掘結果等。
從質量評估結果可以得到三類指標,分別是支援度,置信度,提公升度。其中,支援度代表了特定項集在事務資料庫中所佔的比例,置信度是規則的正確率,而提公升度代表了響應目標關聯規則與平均響應的比值。
可以使用inspect函式來檢視部分規則,5668個規則中的前6個,最後我們可以對些規則進行依據置信度大小排序,並將置信度最高的那些規則列表顯示出來。我們發現糖與全脂牛奶的關聯度最強,支援度為0.001220132.置信度為1,提公升度達到3.913649。
十二 使用索引規則 完
1.如果索引欄位上使用了函式,導致索引失效 explain select from emp where upper ename smith 2.如果索引欄位上使用運算,導致索引失效 explain select from emp where empno 1 109 3.如果索引欄位上產生了 隱式型別...
R語言 資料探勘 R語言如何做關聯規則?
一 前言 提到資料探勘,我們第一反應就是之前聽到的啤酒和尿不濕的故事,該故事就是典型的資料探勘中的關聯規則。購物籃分析區別於傳統的線性回歸的主要區別為,關聯分析針對離散資料 下面我們利用r語言的arules包及apriori演算法對商品交易資料進行關聯規則挖掘,二 常見關聯規則 關聯規則 牛奶 雞蛋...
R語言資料探勘2 1 2 1 關聯規則
2.1.2.1 關聯規則 關聯分析可以從海量資料集中發現有意義的關係,這種關係可以表示成關聯規則的形式或頻繁項集的形式。具體的關聯分析演算法將在後面乙個章節中給出。關聯規則挖掘旨在發現給定資料集 事務資料集或其他序列 模式 型別資料集 中的結果規則集合。給定預先定義的最小支援度計數s和置信度c,給定...