現在的位置: 首頁 > 綜合 > 正文

關聯規則挖掘演算法綜述

2018年06月10日 ⁄ 綜合 ⁄ 共 7487字 ⁄ 字型大小 評論關閉
摘 要 本文介紹了關聯規則的基本概念和分類方法,列舉了一些關聯規則挖掘演算法並簡要分析了典型演算法,展望了關聯規則挖掘的未來研究方向。

1 引言

關聯規則挖掘發現大量數據中項集之間有趣的關聯或相關聯繫。它在數據挖掘中是一個重要的課題,最近幾年已被業界所廣泛研究。

關聯規則挖掘的一個典型例子是購物籃分析。關聯規則研究有助於發現交易資料庫中不同商品(項)之間的聯繫,找出顧客購買行為模式,如購買了某一商品對購買其他商品的影響。分析結果可以應用於商品貨架布局、貨存安排以及根據購買模式對用戶進行分類。

Agrawal等於1993年首先提出了挖掘顧客交易資料庫中項集間的關聯規則問題[AIS93b],以後諸多的研究人員對關聯規則的挖掘問題進行了大量的研究。他們的工作包括對原有的演算法進行優化,如引入隨機採樣、並行的思想等,以提高演算法挖掘規則的效率;對關聯規則的應用進行推廣。

最近也有獨立於Agrawal的頻集方法的工作[HPY00],以避免頻集方法的一些缺陷,探索挖掘關聯規則的新方法。也有一些工作[KPR98]注重於對挖掘到的模式的價值進行評估,他們提出的模型建議了一些值得考慮的研究方向。

2 基本概念

設I={i1,i2,..,im}是項集,其中ik(k=1,2,…,m)可以是購物籃中的物品,也可以是保險公司的顧客。設任務相關的數據D是事務集,其中每個事務T是項集,使得TÍI。設A是一個項集,且AÍT。

關聯規則是如下形式的邏輯蘊涵:A Þ B,AÌI, AÌI,且A∩B=F。關聯規則具有如下兩個重要的屬性:

支持度: P(A∪B),即A和B這兩個項集在事務集D中同時出現的概率。

置信度: P(B|A),即在出現項集A的事務集D中,項集B也同時出現的概率。

同時滿足最小支持度閾值和最小置信度閾值的規則稱為強規則。給定一個事務集D,挖掘關聯規則問題就是產生支持度和可信度分別大於用戶給定的最小支持度和最小可信度的關聯規則,也就是產生強規則的問題。

3 關聯規則種類

1) 基於規則中處理的變數的類別,關聯規則可以分為布爾型和數值型。

布爾型關聯規則處理的值都是離散的、種類化的,它顯示了這些變數之間的關係。

數值型關聯規則可以和多維關聯或多層關聯規則結合起來,對數值型欄位進行處理,將其進行動態的分割,或者直接對原始的數據進行處理,當然數值型關聯規則中也可以包含種類變數。

2) 基於規則中數據的抽象層次,可以分為單層關聯規則和多層關聯規則。

在單層關聯規則中,所有的變數都沒有考慮到現實的數據是具有多個不同的層次的。

在多層關聯規則中,對數據的多層性已經進行了充分的考慮。

3) 基於規則中涉及到的數據的維數,關聯規則可以分為單維的和多維的。

在單維關聯規則中,我們只涉及到數據的一個維,如用戶購買的物品

在多維關聯規則中,要處理的數據將會涉及多個維。

4 演算法綜述

4.1 經典的頻集演算法

Agrawal等於1994年提出了一個挖掘顧客交易資料庫中項集間的關聯規則的重要方法 [AS94a, AS94b],其核心是基於兩階段頻集思想的遞推演算法。該關聯規則在分類上屬於單維、單層、布爾關聯規則。

所有支持度大於最小支持度的項集稱為頻繁項集,簡稱頻集。

4.1.1 演算法的基本思想

首先找出所有的頻集,這些項集出現的頻繁性至少和預定義的最小支持度一樣。然後由頻集產生強關聯規則,這些規則必須滿足最小支持度和最小可信度。

挖掘關聯規則的總體性能由第一步決定,第二步相對容易實現。

4.1.2 Apriori核心演算法分析

為了生成所有頻集,使用了遞推的方法。其核心思想簡要描述如下:

(1) L1 = {large 1-itemsets};

(2) for (k=2; Lk-1¹F; k++) do begin

(3) Ck=apriori-gen(Lk-1); //新的候選集

(4) for all transactions tÎD do begin

(5) Ct=subset(Ck,t); //事務t中包含的候選集

(6) for all candidates cÎ Ct do

(7) c.count++;

(8) end

(9) Lk={cÎ Ck |c.count³minsup}

(10) end

(11) Answer=∪kLk;

首先產生頻繁1-項集L1,然後是頻繁2-項集L2,直到有某個r值使得Lr為空,這時演算法停止。這裡在第k次循環中,過程先產生候選k-項集的集合Ck,Ck中的每一個項集是對兩個只有一個項不同的屬於Lk-1的頻集做一個(k-2)-連接來產生的。Ck中的項集是用來產生頻集的候選集,最後的頻集Lk必須是Ck的一個子集。Ck中的每個元素需在交易資料庫中進行驗證來決定其是否加入Lk,這裡的驗證過程是演算法性能的一個瓶頸。這個方法要求多次掃描可能很大的交易資料庫,即如果頻集最多包含10個項,那麼就需要掃描交易資料庫10遍,這需要很大的I/O負載。

可能產生大量的候選集,以及可能需要重複掃描資料庫,是Apriori演算法的兩大缺點。

4.1.3 演算法的優化

為了提高演算法的效率,Mannila等引入了修剪技術來減小候選集Ck的大小[MTV94],由此可以顯著地改進生成所有頻集演算法的性能。演算法中引入的修剪策略基於這樣一個性質:一個項集是頻集當且僅當它的所有子集都是頻集。那麼,如果Ck中某個候選項集有一個(k-1)-子集不屬於Lk-1,則這個項集可以被修剪掉不再被考慮,這個修剪過程可以降低計算所有的候選集的支持度的代價。

4.2 改進的頻集演算法

4.2.1散列

該演算法由Park等在1995年提出[PCY95b]。通過實驗發現尋找頻繁項集的主要計算是在生成頻繁2項集L2上,Park就是利用這個性質引入散列技術來改進產生頻繁2項集的方法。

其基本思想是:當掃描資料庫中每個事務,由C1中的候選1項集產生頻繁1項集L1時,對每個事務產生所有的2項集,將它們散列到散列表結構的不同桶中,並增加對應的桶計數,在散列表中對應的桶計數低於支持度閾值的2項集不可能是頻繁2項集,可從候選2項集中刪除,這樣就可大大壓縮了要考慮的2項集。

4.2.2 事務壓縮

Agrawal等提出壓縮進一步迭代掃描的事務數的方法[AS94b, HF95]。因為不包含任何K項集的事務,不可能包含任何(K+1)項集,可對這些事務加上刪除標誌,掃描資料庫時不再考慮。

4.2.3 雜湊

一個高效地產生頻集的基於雜湊的演算法由Park等提出[PCY95a]。通過實驗我們可以發現尋找頻集主要的計算是在生成頻繁2-項集Lk上,Park等就是利用了這個性質引入雜湊技術來改進產生頻繁2-項集的方法。

4.2.4 劃分

Savasere等設計了一個基於劃分的演算法[SON95],這個演算法先把資料庫從邏輯上分成幾個互不相交的塊,每次單獨考慮一個分塊並對它生成所有的頻集,然後把產生的頻集合併,用來生成所有可能的頻集,最後計算這些項集的支持度。這裡分塊的大小選擇要使得每個分塊可以被放入主存,每個階段只需被掃描一次。而演算法的正確性是由每一個可能的頻集至少在某一個分塊中是頻集保證的。上面所討論的演算法是可以高度並行的,可以把每一分塊分別分配給某一個處理器生成頻集。產生頻集的每一個循環結束後,處理器之間進行通信來產生全局的候選k-項集。通常這裡的通信過程是演算法執行時間的主要瓶頸;而另一方面,每個獨立的處理器生成頻集的時間也是一個瓶頸。其他的方法還有在多處理器之間共享一個雜湊樹來產生頻集。更多的關於生成頻集的並行化方法可以在文獻[AS96]中找到。

4.2.5 選樣

基本思想是在給定數據的一個子集挖掘。對前一遍掃描得到的信息,仔細地組合分析,可以得到一個改進的演算法,Mannila等先考慮了這一點[MTV94],他們認為採樣是發現規則的一個有效途徑。隨後又由Toivonen進一步發展了這個思想[Toi96],先使用從資料庫中抽取出來的採樣得到一些在整個資料庫中可能成立的規則,然後對資料庫的剩餘部分驗證這個結果。Toivonen的演算法相當簡單並顯著地減少了I/O代價,但是一個很大的缺點就是產生的結果不精確,即存在所謂的數據扭曲(data skew)。分布在同一頁面上的數據時常是高度相關的,可能不能表示整個資料庫中模式的分布,由此而導致的是採樣5%的交易數據所花費的代價可能同掃描一遍資料庫相近。

4.2.6 動態項集計數

Brin等人給出該演算法[BMUT97]。動態項集計數技術將資料庫劃分為標記開始點的塊。不象Apriori僅在每次完整的資料庫掃描之前確定新的候選,在這種變形中,可以在任何開始點添加新的候選項集。該技術動態地評估以被計數的所有項集的支持度,如果一個項集的所有子集以被確定為頻繁的,則添加它作為新的候選。結果演算法需要的資料庫掃描比Apriori 少。

4.3 FP-樹頻集演算法

針對Apriori演算法的固有缺陷,J. Han等提出了不產生候選挖掘頻繁項集的方法—FP-樹頻集演算法[HPY00]。採用分而治之的策略,在經過第一遍掃描之後,把資料庫中的頻集壓縮進一棵頻繁模式樹(FP-tree),同時依然保留其中的關聯信息,隨後再將FP-tree分化成一些條件庫,每個庫和一個長度為1的頻集相關,然後再對這些條件庫分別進行挖掘。當原始數據量很大的時候,也可以結合劃分的方法,使得一個FP-tree可以放入主存中。實驗表明,FP-growth對不同長度的規則都有很好的適應性,同時在效率上較之apriori演算法有巨大的提高。

4.4 多層關聯規則挖掘

對於很多的應用來說,由於數據分布的分散性,所以很難在數據最細節的層次上發現一些強關聯規則。當我們引入概念層次後,就可以在較高的層次上進行挖掘[HF95, SA95]。雖然較高層次上得出的規則可能是更普通的信息,但是對於一個用戶來說是普通的信息,對於另一個用戶卻未必如此。所以數據挖掘應該提供這樣一種在多個層次上進行挖掘的功能。

多層關聯規則的分類:根據規則中涉及到的層次,多層關聯規則可以分為同層關聯規則和層間關聯規則。

多層關聯規則的挖掘基本上可以沿用「支持度-可信度」的框架。不過,在支持度設置的問題上有一些要考慮的東西。

同層關聯規則可以採用兩種支持度策略:

1) 統一的最小支持度。對於不同的層次,都使用同一個最小支持度。這樣對於用戶和演算法實現來說都比較的容易,但是弊端也是顯然的。

2) 遞減的最小支持度。每個層次都有不同的最小支持度,較低層次的最小支持度相對較小。同時還可以利用上層挖掘得到的信息進行一些過濾的工作。

層間關聯規則考慮最小支持度的時候,應該根據較低層次的最小支持度來定。

4.5 多維關聯規則挖掘

對於多維資料庫而言,除維內的關聯規則外,還有一類多維的關聯規則。例如:

年齡(X,「20...30」) 職業(X,「學生」)==> 購買(X,「筆記本電腦」)

在這裡我們就涉及到三個維上的數據:年齡、職業、購買。

根據是否允許同一個維重複出現,可以又細分為維間的關聯規則(不允許維重複出現)和混合維關聯規則(允許維在規則的左右同時出現)。

年齡(X,「20...30」) 購買(X,「筆記本電腦」) ==> 購買(X,「印表機」)

這個規則就是混合維關聯規則。

在挖掘維間關聯規則和混合維關聯規則的時候,還要考慮不同的欄位種類:種類型和數值型。

對於種類型的欄位,原先的演算法都可以處理。而對於數值型的欄位,需要進行一定的處理之後才可以進行[KHC97]。處理數值型欄位的方法基本上有以下幾種:

1) 數值欄位被分成一些預定義的層次結構。這些區間都是由用戶預先定義的。得出的規則也叫做靜態數量關聯規則。

2) 數值欄位根據數據的分布分成了一些布爾欄位。每個布爾欄位都表示一個數值欄位的區間,落在其中則為1,反之為0。這種分法是動態的。得出的規則叫布爾數量關聯規則。

3) 數值欄位被分成一些能體現它含義的區間。它考慮了數據之間的距離的因素。得出的規則叫基於距離的關聯規則。

4) 直接用數值欄位中的原始數據進行分析。使用一些統計的方法對數值欄位的值進行分析,並且結合多層關聯規則的概念,在多個層次之間進行比較從而得出一些有用的規則。得出的規則叫多層數量關聯規則。

5 展望

對於關聯規則挖掘領域的發展,筆者認為可以在如下一些方向上進行深入研究:在處理極大量的數據時,如何提高演算法效率;對於挖掘迅速更新的數據的挖掘演算法的進一步研究;在挖掘的過程中,提供一種與用戶進行交互的方法,將用戶的領域知識結合在其中;對於數值型欄位在關聯規則中的處理問題;生成結果的可視化,等等。

參考文獻

[AIS93b] R. Agrawal, T. Imielinski, and A. Swami. Mining association rules between sets of items in large databases. Proceedings of the ACM SIGMOD Conference on Management of data, p.p. 207-216, May 1993.

[AS94a] R. Agrawal, and R. Srikant. Fast algorithms for mining association rules in large database. Technical Report FJ9839, IBM Almaden Research Center, San Jose, CA, Jun. 1994.

[AS94b] R. Agrawal, and R. Srikant. Fast algorithms for mining association rules. In Proc. 1994 Int. Conf. Very Large Databases(VLDB'94), Sep. 1994.

[AS96] R. Agrawal, and J. Shafer. Parallel mining of association rules: Design, Implementation, and Experience. IEEE Trans. Knowledge and data engineering, 8:962-969, Jan. 1996.

[BMUT97] S. Brin, R. Motwani, J. D. Ullman, and S. Tsur. Dynamic itemset counting and implication rules for market basket data. In ACM SIGMOD International Conference On the Management of Data, p.p. 255-264, May 1997.

[HF95] J, Han and Y. Fu. Discovery of multiple-level association rules from large databases. In Proc. 1995 Int. Conf. Very Large Databases(VLDB'95), p.p. 402-431, Sep. 1995.

[HPY00] J.Han,J.Pei, and Y.Yin.Mining. Frequent patterns without candidate generation. In Proc. 2000 ACM-SIGMOD Int. Conf. Management of Data (SIGMOD'00), p.p. 1-12, May 2000.

[KHC97] M. Kamber, J. Han, J. Chang. Metarule-guided mining of multi-dimensional association rules using data cubes. In Proc. 1997 Int. Conf. Khowledge Discovery and Data Mining(KDD'97), p.p. 207-210, Aug. 1997

[KPR98] J. Kleinberg, C. Papadimitriou, and P. Raghavan. Segmentation problems. Proceedings of the 30th Annual Symposium on Theory of Computing, ACM. Sep. 1998.

[MTV94] H. Mannila, H. Toivonen, and A. Verkamo. Efficient algorithm for discovering association rules. AAAI Workshop on Knowledge Discovery in Databases, p.p. 181-192, Jul. 1994.

[PCY95a] J. S. Park, M. S. Chen, and P. S. Yu. An effective hash-based algorithm for mining association rules. Proceedings of ACM SIGMOD International Conference on Management of Data, p.p. 175-186, May 1995.

[PCY95b] J. S. Park, M. S. Chen, and P. S. Yu. Efficient parallel data mining of association rules. 4th International Conference on Information and Knowledge Management, Baltimore, Maryland, Nov. 1995.

[SA95] R. Srikant, and R. Agrawal. Mining generalized association rules. Proceedings of the 21st International Conference on Very Large Database, p.p. 407-419, Sep.1995.

[SON95] A. Savasere, E. Omiecinski, and S. Navathe. An efficient algorithm for mining association rules in large databases. Proceedings of the 21st International Conference on Very Large Database, p.p. 432-443, Sep. 1995.

[Toi96] H. Toivonen. Sampling large databases for association rules. Proceedings of the 22nd International Conference on Very Large Database, Bombay, India, p.p. 134-145, Sep. 1996.

抱歉!評論已關閉.