數據挖掘算法——Apriori

    在上一篇 數據挖掘入門算法整理 中提到, Apriori算法是 關聯規則算法中使用最爲普遍的算法,此次咱們就來學習下該算法的基本知識。

1、算法概述

    Apriori 算法是一種最有影響力的挖掘布爾關聯規則的頻繁項集的 算法,它是由Rakesh Agrawal 和RamakrishnanSkrikant 提出的。它使用一種稱做逐層搜索的迭代方法,k- 項集用於探索(k+1)- 項集。首先,找出頻繁 1- 項集的集合。該集合記做L1。L1 用於找頻繁2- 項集的集合 L2,而L2 用於找L2,如此下去,直到不能找到 k- 項集。每找一個 Lk 須要一次數據庫掃描。爲提升頻繁項集逐層產生的效率,一種稱做Apriori 性質的重 要性質 用於壓縮搜索空間。其運行定理在於一是頻繁項集的全部非空子集都必須也是頻繁的,二是非頻繁項集的全部父集都是非頻繁的

2、應用場景

     Apriori算法應用普遍,可用於消費市場價格分析,猜想顧客的消費習慣;網絡安全領域中的入侵檢測技術;可用在用於高校管理中,根據挖掘規則能夠有效地輔助學校管理部門有針對性的開展貧困助學工做;也可用在移動通訊領域中,指導運營商的業務運營和輔助業務提供商的決策制定。
3、基本概念
    Apriori算法最重要的兩個概念爲支持度(support)和置信度(confidence):
  • 支持度:support({A,B})=P(AB),即事件A、B同時發生的機率
  • 置信度:confidence(A=>B)=support({A,B})/support({A}),即在A發生的事件中同時發生B的機率,計算中A到B的置信度即爲{A,B}的支持度/{A}的支持度。
  • 最小置信度:預約值,通常由屢次嘗試算法結果得出,用來排除每次候選集中的元素,已獲得下一層的頻繁項集。
  • 最小置信度,預設值,用來判斷置信度
  • 強規則:同時知足最小支持度和最小置信度的規則稱爲強規則

3、實現原理

    算法分爲兩個階段:計算各層支持度根據支持度計算置信度。這裏直接經過一個例子來講明,初始集合有5條記錄,根據條記錄中的商品組合,咱們能夠逐級算出每一層的支持度,計算過程以下圖:

支持度計算過程 html

    能夠看到,最終能夠獲得3層支持度:L1,L2,L3,接下來,咱們能夠直接經過支持度計算各層的置信度,這裏咱們以L3爲例:

算法


置信度計算過程

    置信度計算比較簡單,就是根據K層集合中K-1個元素到另一個元素的置信度,直接套用上邊公式便可。這裏咱們其實能夠得出規則,當BC或CE出現的時候,E或B必然出現。固然,這裏只是個簡單的例子,實際中必需要有足夠的樣本,結果才更可靠。
數據庫

4、結語

    從上邊看Apriori算法基本原理仍是比較簡單的,可是實際過程當中若是按照這樣來計算,對於N個商品會有2^N−1個組合,但N稍大點計算量就很是大了,因此實際算法實現中,要利用開頭提到Apriori算法的性質進行剪枝,以減小計算量。此外,關聯規則算法還有FP-Growth和Eclat等更爲高效的算法,這裏再也不介紹,可自行了解。
    參考: Apriori算法詳解使用Apriori算法和FP-growth算法進行關聯分析
安全

相關文章
相關標籤/搜索