資料探勘之關聯規則

weixin_33727510發表於2018-01-03

1. 關聯規則概述

反映一個事物與其他事物之間的相互依存性和關聯性。如果兩個或者多個事物之間存在一定的關聯關係,那麼其中一個事物就能夠通過其他事物預測得到。

2.  基本概念

(1)項

對一個資料表而言,表的每個欄位都具有一個或多個不同的值。欄位的每種取值都是一個項Item。

(2)項集

項的集合稱為項集itemset。包含k個項的項集被稱為k-項集,k表示項集中項的數目。由所有的項所構成的集合是最大的項集,一般用符號I表示。

(3)事務

事務是項的集合。本質上,一個事務就是事實表中的一條記錄。事務是項集I的子集。事務的集合稱為事務集。一般用符號D表示事務集/事務資料庫。

(4)關聯規則

給定一個事務集D,挖掘關聯規則的問題就變成如何產生支援度和可信度分別大於使用者給定的最小支援度和最小可信度的關聯規則的問題。(標準)

(5)支援度(同時,交;元組總數)

若D中的事務包含A∪B的百分比為s,則稱關聯規則A→B的支援度為s。即:

                    support(A→B )= P(A∪B ) = 包含A和B的元組數/元組總數

(6)可信度(同時,交;條件概率)

若D中包含A的事務同時也包含B的的百分比為c,則稱關聯規則 A→B 的置信度/可信度為c,即:

                    confidence(A→B )=P(B|A) = 包含A和包含B的元組數/包含A的元組數 = support(A∪B )/support(A)

(7)頻繁項集

項集的出現頻率是包含項集的事務數,簡稱項集的頻率;

項集滿足最小支援度閾值minsup,如果項集的出現頻率大於或等於minsup與D中事務總數的乘積;

滿足最小支援閾值的項集就稱為頻繁項集(大項集)。頻繁k項集的集合記為Lk;

3. 關聯規則挖掘分類

根據不同的標準,關聯規則可以分為若干型別:

(1)根據規則所處理的值的型別,關聯規則可以分為布林的和量化的

如果規則考慮的關聯是項的在於不在,則它是布林關聯規則;

如果規則描述的是量化的項或屬性之間的關聯,則她是量化關聯規則。量化關聯規則中考慮的是項的量是多少。在這種規則中,項或屬性的量化值分為區間。

(2)根據規則中資料涉及的維,關聯規則可以分為單維的和多維的

如果關聯規則中的項或屬性每個只涉及一個維,則是單維關聯規則;單維關聯規則展示的是屬性內聯絡,即同一個屬性或維內的關聯;

如果規則涉及兩個或多個維,則是多維關聯規則;多維關聯規則展示的是屬性間聯絡,即屬性或維之間的關聯;

(3)根據規則涉及的抽象層,關聯規則可以分為單層的和多層的

有些挖掘關聯規則的方法可以在不同抽象層發現關聯規則。單層關聯規則中的項涉及一個抽象層,多層關聯規則中的項涉及多個抽象層

單層單維布林關聯規則是最基本的關聯規則。

4. 關聯規則的演算法

4.1 如何由大型資料庫挖掘關聯規則?

挖掘關聯規則問題可以分解為以下兩個問題:

找出存在於事務資料庫D中的所有頻繁項集。頻繁項集的支援度support不小於使用者或領域專家給定的最小支援度閾值minsup

利用頻繁項集生成強關聯規則。這些規則必須滿足最小支援度minsup和最小可信度minconf。

經典的關聯挖掘演算法:

(1)Apriori演算法

(2)抽樣演算法

(3)DIC演算法

4.2 發現頻繁項集直接的方法?

產生所有可能的項集,並計算它們的支援度;

定理(Apriori)

頻繁項集的所有非空子集都必須也是頻繁的;

任何非頻繁項集的超集一定也是非頻繁的:

        非頻繁項集的超集可以不用進行測試;

        許多項之間的組合可以去掉(不滿足頻繁條件)

4.2 Apriori 演算法---挖掘單維布林關聯規則

Apriori演算法是根據有關頻繁項集性質的先驗知識而命名的。該演算法使用一種逐層搜尋的迭代方法,利用k-項集探索(k+1)項集;

具體做法:

對於所研究的事務資料庫D,首先找出頻繁1-項集的集合,記為L1;再利用L1找頻繁2-項集的集合L2;再利用L2找L3。。。如此下去,直到不能找到頻繁k-項集為止。找每個Lk需要一次資料庫掃描。

如何將Apriori性質用於演算法?

如何實現Lk-1找Lk?

連線步:為找Lk,通過Lk-1與Lk-1連線產生候選k-項集的集合。該候選集的集合記做Ck,執行Lk-1與Lk-1的連線:如果他們前(k-2)個項相同,則可連線;

剪枝步:任何非頻繁的(k-1)項集都不可能是頻繁K-項集的子集。因此,剪枝。

演算法:

9637742-32f1e6895f18af74.png
Apriori(a片日哦日)演算法


9637742-7679f37f5e280409.png


9637742-751814e633a2fd9b.png

5. 關聯規則的生成

得到所有的頻繁項集以後,可以按照下面的步驟生成關聯規則:

(1)對於每個頻繁專案集I,生成其所有的非空子集;

(2)對於I的每一個非空子集x,計算conference(x),如果confidence(x)> minconfidence,那麼,“x→ (I-x)”成立;

(3)由於規則由頻繁項集產生,每個規則都自動滿足最小支援度。

頻繁項集的挖掘是演算法的瓶頸

        Apriori演算法有兩個致命的效能瓶頸:

            A. 多次掃描事務資料庫,需要很大的I/O負載

            B.可能產生龐大的候選集

瓶頸產生的原因:候選集的產生和判斷過程

能不能避免產生候選項集?

頻繁模式增長(frequent-pattern growth)

頻繁模式增長,簡稱FP-增長

策略:

將提供頻繁項集的資料庫壓縮到一顆頻繁模式樹(FP樹),但仍然保留項集關聯資訊;

將這種壓縮後的資料庫(FP樹)分成一組條件資料庫(若干子樹),每個關聯一個頻繁項,並分別挖掘每個條件資料庫(子樹),從而獲得頻繁項。

優點:

(1)完備

儲存了用來挖掘頻繁項集的全部資訊;

任何事物包含的長模式不會被截斷;

(2)壓縮

減少了不相關資訊---非頻繁項已經被過濾

項以出現次數降序排列:越頻繁的項月容易被共享

FP樹中包含的結點數目不會比資料庫中包含的項的資料多

相關文章