關聯分析

關聯分析

關聯分析又稱關聯挖掘,就是在交易資料、關系資料或其他信息載體中,查找存在于項目集合或對象集合之間的頻繁模式、關聯、相關性或因果結構。或者說,關聯分析是發現交易資料庫中不同商品(項)之間的聯系。

  • 中文名稱
    關聯分析
  • 方    法
    FP-growth演算法
  • 性    質
    分析技術
  • 特    點
    簡單實用

概念介紹

關聯分析是一種簡單、實用的分析技術,就是發現存在于大量資料集中的關聯性或相關性,從而描述了一個事物中某些屬性同時出現的規律和模式。

關聯分析是從大量資料中發現項集之間有趣的關聯和相關聯系。關聯分析的一個典型例子是購物籃分析。該過程通過發現顧客放人其購物籃中的不同商品之間的聯系,分析顧客的購買習慣。通過了解哪些商品頻繁地被顧客同時購買,這種關聯的發現可以幫助零售商製定行銷策略。其他的套用還包括價目表設計、商品促銷、商品的排放和基于購買模式的顧客劃分。

可從資料庫中關聯分析出形如"由于某些事件的發生而引起另外一些事件的發生"之類的規則。如"67%的顧客在購買啤酒的同時也會購買尿布",因此通過合理的啤酒和尿布的貨架擺放或捆綁銷售可提高超市的服務質量和效益。又如"'C語言'課程優秀的同學,在學習'資料結構'時為優秀的可能性達88%",那麽就可以通過強化"C語言"的學習來提高教學效果。

關聯方法

Apriori演算法

Apriori演算法是挖掘產生布爾關聯規則所需頻繁項集的基本演算法,也是最著名的關聯規則挖掘演算法之一。Apriori演算法就是根據有關頻繁項集特徵的先驗知識而命名的。它使用一種稱作逐層搜尋的迭代方法,k-項集用于探索(k+1)-項集。首先,找出頻繁1-項集的集合.記做L1,L1用于找出頻繁2-項集的集合L2,再用于找出L3,如此下去,直到不能找到頻繁k-項集。找每個Lk需要掃描一次資料庫。

為提高按層次搜尋並產生相應頻繁項集的處理效率,Apriori演算法利用了一個重要性質,並套用Apriori性質來幫助有效縮小頻繁項集的搜尋空間。

Apriori性質:一個頻繁項集的任一子集也應該是頻繁項集。證明根據定義,若一個項集I不滿足最小支持度閾值min_sup,則I不是頻繁的,即P(I)<min_sup。若增加一個項A到項集I中,則結果新項集(I∪A)也不是頻繁的,在整個事務資料庫中所出現的次數也不可能多于原項集I出現的次數,因此P(I∪A)<min_sup,即(I∪A)也不是頻繁的。這樣就可以根據逆反公理很容易地確定Apriori性質成立。

針對Apriori演算法的不足,對其進行最佳化:

1)基于劃分的方法。該演算法先把資料庫從邏輯上分成幾個互不相交的塊,每次單獨考慮一個分塊並對它生成所有的頻繁項集,然後把產生的頻繁項集合並,用來生成所有可能的頻繁項集,最後計算這些項集的支持度。這裏分塊的大小選擇要使得每個分塊可以被放入主存,每個階段隻需被掃描一次。而演算法的正確性是由每一個可能的頻繁項集至少在某一個分塊中是頻繁項集保證的。

上面所討論的演算法是可以高度並行的。可以把每一分塊分別分配給某一個處理器生成頻繁項集。產生頻繁項集的每一個迴圈結束後.處理器之間進行通信來產生全局的候選是一項集。通常這裏的通信過程是演算法執行時間的主要瓶頸。而另一方面,每個獨立的處理器生成頻繁項集的時間也是一個瓶頸。其他的方法還有在多處理器之間共享一個雜湊樹來產生頻繁項集,更多關于生成頻繁項集的並行化方法可以在其中找到。

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

3)基于採樣的方法。基于前一遍掃描得到的信息,對它詳細地做組合分析,可以得到一個改進的演算法,其基本思想是:先使用從資料庫中抽取出來的採樣得到一些在整個資料庫中可能成立的規則,然後對資料庫的剩餘部分驗證這個結果。這個演算法相當簡單並顯著地減少了FO代價,但是一個很大的缺點就是產生的結果不精確,即存在所謂的資料扭曲(Dataskew)。分布在同一頁面上的資料時常是高度相關的,不能表示整個資料庫中模式的分布,由此而導致的是採樣5%的交易資料所花費的代價同掃描一遍資料庫相近。

4)減少交易個數。減少用于未來掃描事務集的大小,基本原理就是當一個事務不包含長度為志的大項集時,則必然不包含長度為走k+1的大項集。從而可以將這些事務移除,在下一遍掃描中就可以減少要進行掃描的事務集的個數。這就是AprioriTid的基本思想。

FP-growth演算法

由于Apriori方法的固有缺陷.即使進行了最佳化,其效率也仍然不能令人滿意。2000年,Han Jiawei等人提出了基于頻繁模式樹(Frequent Pattern Tree,簡稱為FP-tree)的發現頻繁模式的演算法FP-growth。在FP-growth演算法中,通過兩次掃描事務資料庫,把每個事務所包含的頻繁項目按其支持度降序壓縮存儲到FP-tree中。在以後發現頻繁模式的過程中,不需要再掃描事務資料庫,而僅在FP-Tree中進行查找即可,並通過遞歸調用FP-growth的方法來直接產生頻繁模式,因此在整個發現過程中也不需產生候選模式。該演算法克服了Apriori演算法中存在的問顥.在執行效率上也明顯好于Apriori演算法。

相關詞條

相關搜尋

其它詞條