資料探勘之關聯規則挖掘(Apriori演算法)

2021-08-20 12:22:53 字數 2572 閱讀 3994

一、概述

本篇博文主要闡述資料探勘相關的關聯規則挖掘的演算法(apriori演算法)。主要介紹關聯規則的基本概念、apriori演算法原理和apriori演算法例項,文章末尾處附加apriori演算法源程式。

二、關聯規則挖掘的基本概念

關聯規則挖掘發現大量資料中項集之間有趣的關聯關係。如果兩項或者多項屬性之間存在關聯,那麼其中一項的屬性可以依靠其他屬性值進行**。

關聯規則挖掘問題可以分為兩個子問題:1、找出事物資料庫中所有大於等於使用者指定的最小支援度的資料項集;2、利用頻繁項集生成所欲需要的關聯規則,根據使用者設定的最小置信度進行取捨,最後得到強關聯規則。

2.1、項與項集

資料庫中不可分割的最小單位資訊稱為項,用符號i表示。項的集合稱為項集,用 i 表示。項集的個數為k稱為k-項集。比如,集合稱為3-項集。

2.2、事物

事物資料庫t=是由一系列具有唯一標識的事務組成的。每個事務ti(i=1,2,3,4,5....,n)包含的項集都是i的子集。

2.3、項集的頻數(支援度計數)

包括項集的事務個數稱之為項集的頻數(支援度計數)

2.4、關聯規則

關聯規則x==>y 的蘊含式。其中x,y都是i的真子集,並且x∩y=∅。x稱之為前提,y稱之為結果。關聯規則反應x中的專案出現時,y中專案也跟著出現的規律。

2.5、關聯規則的支援度(support)

關聯規則的支援度是交易集中同時包含x和y的交易數和所有交易數之比。它反應了x和y中所包含的項在事務集中同時出現的概率,support(x==》y)

support(x==>y) = support(x∪y)=p(xy)

2.6、關聯規則的置信度(confidence)

關聯規則的置信度是交易集包含x和y的交易數與所有交易數和包含x的交易數之比。ji為confidence(x==>y)= support(x∪y)/support(x)=p(y|x)

通常情況下,使用者需要制定最小支援度的閾值和最小置信度的閾值。關聯規則必須要滿足這兩種閾值。如果關聯規則既滿足大於等於最小置信度,並且大於等於最小支援度則成只為強關聯規則,反之不是。通常我們所說的都是強關聯規則。

項集u在t中所佔的支援度的百分比就是他的支援度。support(u)=||/||t||.對於專案集i,在事務資料庫t中所滿足使用者指定的最小支援度的專案集,稱之為頻繁專案集。

專案集空間理論-----頻繁項集的子集仍然是頻繁項集,非頻繁項集的超集是非頻繁專案集。

3、關聯規則挖掘演算法------apriori演算法原理

3.1、apriori演算法的基本思想

apriori演算法的基本思想是通過對資料庫的多次掃瞄來計算項集的支援度,發現所有的頻繁項集從而生成關聯規則。apriori演算法對資料集進行多次掃瞄。第一次掃瞄得到頻繁1-項集的集合l1,第k(k>1)次掃瞄首先利用第(k-1)次掃瞄的結果lk-1來產生候選集k-項集的集合ck,然後在掃瞄的過程中確定ck的支援度。最後,在每次掃瞄結束時計算頻繁k-項集的集合lk,演算法在候選集k-項集的集合ck為空時結束。

3.2、apriori演算法產生頻繁項集的過程

產生頻繁項集的過程只要分為連線和減枝兩步:

1、連線:為找到lk(k>1),通過lk-1與自身做連線產生候選k-項集的集合ck。設l1,l2是lk-1中的項集。記li[j]表示li的第j個項。apriori演算法假定事務或項集中的項按字典次序排序;如果lk-1的元素l1,l2的前k-2項相等,l1的k-1項小於l2的k-1項,則可以認為l1和l2可以做連線。連線結果(l1[1],l1[2],l1[3],l1[4],.......,l1[k-1],l2[k-1])

2、減枝:由apriori的性質可知,頻繁項集k-項集的任何子集都是必須是頻繁項集,由連線生成的集合ck需要進行驗證,去除不滿足支援度的非頻繁k-項集。

3.3、apriori演算法的主要步驟

掃瞄全部資料,產生候選1-項集的集合c1.

根據最小支援度,由候選1-項集的集合c1產生頻繁1-項集的集合l1.

對k>1,重複執行步驟4,5,6

由lk執行連線和減枝操作,產生候選k+1-項集的集合ck+1

根據最小支援度,由候選(k+1)-項集的集合ck+1,產生頻繁(k+1)-項集的集合lk+1

若l不等於∅,則k=k+1,步驟跳4,否則結束

根據最小置信度,由頻繁項集產生強關聯規則,結束

3.4、apriori演算法描述

輸入:資料庫d,最小支援度閾值min_sup。

輸出:d中的頻繁集l.

begin

l1=1-頻繁項集

for(k=2;lk-1≠∅;k++)do begin

ck=apriori_gen(lk-1);

for所有資料集t∈d do begin

ct=subset(ck,t);

for所有候選集c屬於ct,do

c.count++

end;

lk=end

endreturn l1∪l2∪......∪lm

3、apriori演算法例項

資料探勘 關聯規則挖掘

關聯規則 association rule 是資料中所蘊含的一類重要規律。關聯規則挖掘的目標是在資料專案中找出所有的併發關係 cooccurrence relationships 這種關係也稱為關聯 association 關聯規則挖掘的經典應用是購物籃 market basket 關聯規則挖掘並沒...

資料探勘之關聯規則

在資料探勘的知識模式中,關聯規則模式是比較重要的一種。屬於描述性模式,發現關聯規則的演算法屬於無監督學習的方法。關聯規則通過量化的數字描述物品甲的出現對物品乙的出現有多大的影響。一般用4個引數來描述關聯規則的屬性 1.可信度 子集 可信度是指出現了物品集a的事務t中,物品集b也同時出現的概率有多大。...

資料探勘之關聯規則挖掘 Apriori演算法

關聯規則,肯定很多人都聽說過 乙個男士買尿布時順帶買啤酒的事情 具體事物之間真的是否具有關聯,有多大的關聯,這就是本篇部落格需要分享學習的知識。在這裡x,y就是購買的部分商品,i表示所有的商品 其含義就是購買商品x與購買商品y之間的關聯關係 同時在這裡引入對規則定量的描述 支援度就是所買商品中中同時...