Apriori演算法 關聯分析

2021-07-25 20:12:51 字數 1209 閱讀 7564

apriori演算法是資料探勘演算法中的重要一員,它是通過對資料集進行關聯分析,從而分析出資料集裡項與項之間的關聯關係。演算法最簡單直接的應用,當屬對超市裡被購買的物品的關聯分析,從而挖掘出顧客購買產品及其附屬產品的關係,例如經典的尿布與啤酒,或者現在各大電商**上,當入手一樣物品後,會給推送來各種很可能被同時需要的東西,這就是關聯分析的威力。

先了解幾個關於此演算法的概念。

apriori演算法是建立在對頻繁項集進行不斷挖掘、剪枝的過程,最後得出布林關聯規則。其核心思想是通過生成候選項集,然後檢測其支援度與置信度進行剪枝來挖掘出頻繁項集,然後不斷重複這個過程。根據描述,要得到所有項集,那麼我們直接遍歷資料集中每一條記錄,然後窮舉出每一種可能,然後不斷計算就行了。可是,這種不動腦的演算法最大的問題就是它完全沒有效率可言,窮舉的方式會導致窮舉出很多重複項,而且一般資料集都是非常大的,這會導致災難性後果。所以,apriori演算法採用了更有效的方式。

它採用逐層搜尋的方式。

首先,第一層構建候選項集c1,它是乙個1-項集,列舉出資料集裡出現過的所有單項,並統計出其頻數,然後根據定義的項集的最小支援度進行提前剪枝,剪掉那些小於最小支援度的項,得到頻繁1-項集。

接著,對1-項集裡的元素進行連線。連線有兩個條件:a)兩個項集k-1項是相同的。b)兩個項集連線後,它的全部子集應該都是頻繁集,然後再進行剪枝,剪掉小於最小支援度的項,得到頻繁2-項集。

然後重複1,2就能得到候選項集c3、頻繁3-項集、候選項集c4、頻繁4-項集,直到達到我們的迭代要求,得到最後的項集。

得到最後的項集,即是項與項之間關聯可能性較大的集合,例如為,那麼我們就可以去計算a->b,a->c,b->c,a^b->c,a^c->b,b^c->a等等的置信度了,大於人工指定的最小置信度閾值的那些規則稱為強規則,即我們要尋找的規則。

下面用乙個例項來看看apriori演算法的工作過程。以下為乙個商品購買的資料集,表示每一位使用者在abcde這五種產品中購買了哪幾種。原資料集中出現的頻數,並根據最小支援度進行剪枝。注意最後在c3到l3的過程,被剪枝,原因就在於其自己不屬於頻繁2-項集,根據規則b),就被剪枝了。

最後可以去計算關聯規則的置信度:

以上列出了幾個基本規則,若我們定義最小置信度為0.5,則以上均為強規則。

從以上可以看出,apriori演算法存在一些缺點。其一,在每一步,都會產生候選項集,然後再產生頻繁項集,這會大大增加空間複雜度。其二,每一步計算支援度,都會去全部掃瞄一次資料集,這大大增加了時間複雜度,這對於大型資料庫是個災難。

關聯分析演算法Apriori介紹

apriori 演算法其名字是因為演算法基於先驗知識 prior knowledge 根據前一次找到的頻繁項來生成本次的頻繁項。apriori 是關聯分析中核心的演算法。apriori 演算法的特點 只能處理分類變數,無法處理數值型變數 資料儲存可以是交易資料格式 事務表 或者是事實表方式 資料 演...

關聯分析(一) Apriori演算法

關聯分析分為非時序關聯分析和時序關聯分析,其中非時序關聯分析採用apriori演算法,利用先驗知識產生頻繁項集以及關聯規則,而時序關聯分析採用gsp演算法。apriori演算法 其名字是因為演算法基於先驗知識 prior knowledge 根據前一次找到的頻繁項來生成本次的頻繁項。apriori是...

Apriori關聯分析

對於一堆資料,我們不知道那些屬性是相關的。這個時候,我們就可以利用apriori演算法分析並發現相關的物品 或者說屬性。這些相關的屬性或者物品,就稱為頻繁項集。即在資料中頻繁出現的專案集合。基於頻繁項集,就能進一步分析其關聯規則。apriori作用是 進行關聯分析,關聯規則學習。屬於無監督學習的一種...