Apriori演算法通俗講解

2021-10-10 01:09:57 字數 1924 閱讀 9956

apriori演算法用於解決大規模資料集的關聯分析問題。關聯分析(association analysis)或關聯規則學習(association rule learning)是從大規模資料集中尋找物品間的隱含關係。但是,尋找物品的不同組合是一項十分耗時的任務,計算代價高,蠻力搜尋並不能解決問題,所以需要更智慧型的方法在合理時間範圍內找到頻繁項集。apriori演算法就是解決這個問題的。

關聯分析是一種在大規模資料集中尋找有趣關係的任務。這些關係可以有兩種形式:(1)頻繁項集,(2)關聯規則。

頻繁項集:是經常出現在一塊的物品的集合。

量化方法:支援度(support)。支援度是資料集中包含該項集的記錄所佔的比例。例如資料集[[1, 3, 4], [2, 3, 5], [1, 2, 3], [2, 5]]中,項集的支援度為3/4,項集的支援度為1/2。

關聯規則:暗示兩種物品之間可能存在很強的關係。

量化計算:可信度或置信度(confidence)。可信度是針對一條關聯規則(如-->)來定義的。-->這條規則的可信度為「支援度/支援度」,即2/3,意味著包含的所有記錄中2/3符合規則包含。

無論頻繁項集還是關聯規則都需要計算支援度。如果資料量小,計算乙個項集的支援度可以針對每個項集掃瞄所有資料,然後統計該項集出現的總數除以總的交易記錄數,就可以得到支援度。但是對於n個物品的資料集共有2n-1中項集組合,即使4個物品也需要遍歷資料集15次,100種物品有

apriori演算法可以降低計算時間,減少可能感興趣的項集。

apriori原理:如果某個項集是頻繁的,那麼它的所有子集也是頻繁的。如若是頻繁的,那麼、也一定是頻繁的。反過來同樣,如果乙個項集是非頻繁集,那麼它的所有超集也是非頻繁的。如若是非頻繁的,那麼、、也是非頻繁項。所以如果計算出的支援度是非頻繁的,那麼、、的支援度就不用計算了。

apriori原理可以避免項集數目的指數增長,從而在合理時間內計算出頻繁項集。

apriori演算法流程:

1)首先,基於資料集生成個數為1的項集的列表c1;

2)根據頻繁項集函式,計算c1中各元素的支援度,去掉不滿足最小支援度的元素,生成滿足最小支援度的頻繁項集列表l1;

3)根據建立候選項集函式,基於l1生成k=2的候選項集列表c2;

4)根據頻繁項集函式,基於c2生成滿足最小支援度的k=2的頻繁項集列表l2;

5)增加k的值,重複3)、4)生成lk,直到lk為空時,返回l列表,l包含l1、l2、l3...

以下是建立候選項集函式及解釋。

至於為什麼是比較前k-2個元素呢,一般初始項集個數為1,由k=1的項集生成k=2的項集。所以k的初始值也為2。如果要生成個數為k的項集,則比較前k-2項,如果相等合併,正好比較的項各剩下1個不相等的元素,這樣合併後個數就為k-2+1+1=k項。(以下是舉例推導過程,忽略c2經過濾後生成l2,直接將c2視為l2,相當於支援度為0)

比較前k-2個元素,可以減少遍歷列表的次數。比如想利用、、來建立三元素項集,如果將每兩個集合合併,就會得到、、。同樣的結果結合會重複3次,還需要處理以得到非重複結果。現在只比較第k-2=1個元素,第1個元素相同才合併集合,得到,只有一次操作,這樣就不需要遍歷列表來尋找非重複值。

首先從乙個頻繁項集開始,接著建立乙個規則列表,其中規則右部只包含乙個元素,然後對這些規則進行測試。接下來合併所有剩餘規則來建立乙個新的規則列表,其中規則右部包含兩個元素。這種方法也被稱作分級法。【待續】

通俗tarjan演算法講解

全網最詳細tarjan演算法講解,我不敢說別的。反正其他tarjan演算法講解,我看了半天才看懂。我寫的這個,讀完一遍,發現原來tarjan這麼簡單!tarjan演算法,乙個關於 圖的聯通性的神奇演算法。基於dfs 迪法師 演算法,深度優先搜尋一張有向圖。注意!是有向圖。根據樹,堆疊,打標記等種種神...

python中Apriori演算法實現講解

1.apriori演算法簡介 apriori演算法是挖掘布林關聯規則頻繁項集的演算法。apriori演算法利用頻繁項集性質的先驗知識,通過逐層搜尋的迭代方法,即將k 項集用於探察 k 1 項集,來窮盡資料集中的所有頻繁項集。先找到頻繁項集1 項集集合l1,然後用l1找到頻繁2 項集集合l2,接著用l...

svm通俗講解 SVM通俗講解

svm support vector machine 支援向量機相關理論介紹 基於資料的機器學習是現代智慧型技術中的重要方面,研究從觀測資料 樣本 出發尋找規律,利用這些規律對未來資料或無法觀測的資料進行 迄今為止,關於機器學習還沒有一種被共同接受的理論框架,關於其實現方法 大致可以分為 三種 3 ...