Apriori(挖掘關聯規則的頻繁項集算法)
Apriori算法使用頻繁項集的先驗知識,使用一種稱作逐層搜索的迭代方法,k項集用於探索(k+1)項集。首先,通過掃描事務(交易)記錄,找出所有的頻繁1項集,該集合記做L1,然後利用L1找頻繁2項集的集合L2,L2找L3,如此下去,直到不能再找到任何頻繁k項集。最後再在所有的頻繁集中找出強規則,即產生用戶感興趣的關聯規則。
Apriori算法的特點:只能處理分類變量,無法處理數值型變量;
Apriori算法的兩大缺點:。
由頻繁k-1項集進行自連接生成的候選頻繁k項集數量巨大(可能產生大量的候選集)。
在驗證候選頻繁k項集的時候需要對整個數據庫進行掃描,可能需要重複掃描數據庫,非常耗時。
幾種優化方法:(詳解請看數據挖掘概念與技術P166)
1. 基於劃分的方法。
2. 基於hash的方法。
3. 基於採樣的方法。
4. 減少交易的個數。
(Tip:爲什麼要壓縮CK呢?因爲實際情況下事務記錄往往是保存在外存儲上,比如數據庫或者其他格式的文件上,在每次計算候選計數時都需要將候選與所有事務進行比對,衆所周知,訪問外存的效率往往都比較低,因此Apriori加入了所謂的剪枝步,事先對候選集進行過濾,以減少訪問外存的次數。)
Apriori尋找頻繁項集的過程是一個不斷迭代的過程,每次都是兩個步驟,產生候選集Ck(可能成爲頻繁項集的項目組合);基於候選集Ck計算支持度,確定Lk。
Apriori的尋找策略就是從包含少量的項目開始逐漸向多個項目的項目集搜索。Apriori算法採用連接步和剪枝步兩種方式來找出所有的頻繁項集。
數據分析步驟(例子請看數據挖掘概念與技術P160)
我們看到,數據庫存儲的數據格式,會員100購買了 1 3 4三種商品,那麼對應的集合形式如右邊的圖所示。那麼基於候選集C1,我們得到頻繁項集L1,如下圖所示,在此表格中{4}的支持度爲1,而我們設定的支持度爲2。支持度大於或者等於指定的支持度的最小閾值就成爲L1了,這裏{4}沒有成爲L1的一員。因此,我們認定包含4的其他項集都不可能是頻繁項集,後續就不再對其進行判斷了。
此時我們看到L1是符合最低支持度的標準的,那麼下一次迭代我們依據L1產生C2(4就不再被考慮了),此時的候選集如右圖所示C2(依據L1*L1的組合方式)確立。C2的每個集合得到的支持度對應在我們原始數據組合的計數,如下圖左所示。
此時,第二次迭代發現了{1 2} {1 5}的支持度只有1,低於閾值,故而捨棄,那麼在隨後的迭代中,如果出現{1 2} {1 5}的組合形式將不被考慮。
如上圖,由L2得到候選集C3,那麼這次迭代中的{1 2 3} { 1 3 5}哪去了?如剛纔所言,{1 2} {1 5}的組合形式將不被考慮,因爲這兩個項集不可能成爲頻繁項集L3,此時L4不能構成候選集L4,即停止。
如果用一句化解釋上述的過程,就是不斷通過Lk的自身連接,形成候選集,然後在進行剪枝,除掉無用的部分。
根據頻繁項集產生簡單關聯規則Apriori的關聯規則是在頻繁項集基礎上產生的,進而這可以保證這些規則的支持度達到指定的水平,具有普遍性和令人信服的水平。
支持度與置信度
1.依據支持度找出所有頻繁項集(頻度)
2.依據置信度產生關聯規則(強度)
基本概念
對於A->B
①支持度:P(A ∩ B),既有A又有B的概率
②置信度:
P(B|A),在A發生的事件中同時發生B的概率 p(AB)/P(A) 例如購物籃分析:牛奶 麪包
例子:[支持度:3%,置信度:40%]
支持度3%:意味着3%顧客同時購買牛奶和麪包
置信度40%:意味着購買牛奶的顧客40%也購買麪包
③如果事件A中包含k個元素,那麼稱這個事件A爲k項集事件A滿足最小支持度閾值的事件稱爲頻繁k項集。
④同時滿足最小支持度閾值和最小置信度閾值的規則稱爲強規則
Apriori算法的應用
Apriori是關聯分析中核心的算法。Apriori(先驗的,推測的)算法應用廣泛,可用於消費市場價格分析,猜測顧客的消費習慣;網絡安全領域中的***檢測技術;可用在用於高校管理中,根據挖掘規則可以有效地輔助學校管理部門有針對性的開展貧困助學工作;也可用在移動通信領域中,指導運營商的業務運營和輔助業務提供商的決策制定。
關聯規則挖掘首先是用來發現購物籃數據事務中各項之間的有趣聯繫,關聯規則的屬性可以用以下三個參數描述: 一是支持度(support)二是置信度(confidence),三是頻繁項集( 支持度不小於最小支持度的事務集)。支持度反映關聯規則在數據庫中的重要性,置信度衡量關聯規則的可信程度(具體的含義可以通過下面的例子來理解)
關聯規則的商業應用十分廣泛,其中一個典型例子是購物籃分析。關聯規則研究有助於發現交易數據庫中不同商品(項)之間的聯繫,找出顧客購買行爲模式,如購買了某一商品對購買其他商品的影響。分析結果可以應用於商品貨架佈局、貨存安排以及根據購買模式對用戶進行分類。