R語言使用Apriori規則完成關聯挖掘

2021-08-02 13:01:30 字數 3756 閱讀 2180

說明

關聯挖掘常被用於發現隱藏在事務資料集間的一些有意義的關聯,演算法首先找到所有頻繁項集,然後從這些頻繁項集中生成強規則。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,給定...