關聯分析演算法

2021-06-26 08:46:19 字數 1313 閱讀 4822

關聯分析演算法

關聯分析演算法的應用非常廣泛,它可以在大規模資料集中找出一組有關聯的資料。例如:商品分析中,我們可以分析出哪些商品之間有購買的關聯,也就是買了其中乙個商品之後,顧客就很有可能買另外乙個商品。

頻繁項集是指那些經常出現在一起的物品集合,那麼如何評價這裡的頻繁程度呢?我們用支援度和可信度(置信度)來評價。乙個項集的支援度指資料集中包含該項集的記錄所佔的比例,置信度為乙個關聯規則中這個關聯成立的概率。舉例來說:

從圖中可以看出:

但是,當物品的資料量增大的時候,使用上述遍歷的方法是可以找到所有的可信度較高的關聯規則,但是需要遍歷的次數也是非常龐大的。此時出現了apriori演算法。

需要注意的是,apriori演算法的作用只是發現乙個資料集中哪些項集是頻繁的。關聯分析的目標處理發現頻繁項集之外,還需要從它們中間獲得關聯規則。不過對於關聯分析而言,發現頻繁項集是主要的工作,之後的關聯規則則計算每個規則的可信度即可。

apriori演算法的原理:如果某個項集是頻繁的,那麼它的所有子集也是頻繁的;如果某個項集不是頻繁的,那麼它的所有子集也是非頻繁的。利用這樣的原理,我們便可以大幅度減少計算項集的個數。因為如果能推斷出該項集不是頻繁的,那麼就沒有必要計算其支援度和可信度了。《機器學習實戰》中給出了乙個很好的圖示來解釋apriori的作用:

apriori演算法是發現頻繁項集的一種方法。該演算法的輸入引數有兩個:資料集和最小支援度。最小支援度一定要有,因為大於最小支援度的項集才能被認為是頻繁項集。

apriori演算法的過程:首先,我們會生成所有單個物品的項集列表,接著掃瞄交易記錄來檢視哪些項集滿足最小支援度的要求,哪些不滿足最小支援度的集合會被去掉,對剩下來的集合進行組合以生成包含兩個元素的項集。接下來,再重新掃瞄交易記錄,去掉不滿足要求的項集。重複該過程直到生成了乙個包含所有元素的項集。

在找到了資料集中所有的頻繁項集之後,我們需要從這些頻繁項集中發現關聯規則。就乙個頻繁項集中就可以產生好多個規則,所以如何減小需要計算規則的數量也是很重要的。這裡我們可以借鑑apriori的思想,如果某條規則不滿足最小可信度的要求,那麼該規則的所有子集也不會滿足最小可信度的要求。

比如,在頻繁項集{0, 1, 2, 3}中,我們發現0,1,2->3規則不滿足最小支援度的要求,那麼我們就可以知道1,2->0,3, 01->23, 02->13, 0->123, 1->023, 2->013都不是關聯的規則了。這樣就減小了很多規則的判斷。

Apriori演算法 關聯分析

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

關聯分析演算法Apriori Python

本文參考 zzzzming 在美國有這樣一家奇怪的超市,它將啤酒與尿布這樣兩個奇怪的東西放在一起進行銷售,並且最終讓啤酒與尿布這兩個看起來沒有關聯的東西的銷量雙雙增加。這家超市的名字叫做沃爾瑪。你會不會覺得有些不可思議?雖然事後證明這個案例確實有根據,美國的太太們常叮囑她們的丈夫下班後為小孩買尿布,...

關聯分析演算法Apriori介紹

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