資料探勘之關聯規則挖掘 Apriori演算法

2021-08-27 21:17:21 字數 2429 閱讀 5792

關聯規則,肯定很多人都聽說過:乙個男士買尿布時順帶買啤酒的事情;

具體事物之間真的是否具有關聯,有多大的關聯,這就是本篇部落格需要分享學習的知識。

在這裡x,y就是購買的部分商品,i表示所有的商品;其含義就是購買商品x與購買商品y之間的關聯關係;同時在這裡引入對規則定量的描述:

支援度就是所買商品中中同時含有x,y的概率;置信度就是同時含有x,y商品佔含有x商品的概率,因為這裡表示的是由x推出y的概率,所以是除以含有x的數量;

下面這個例子非常明確:

關聯規則挖掘的目標是什麼,就是找到具有關聯的商品,而對於商品之間的關聯程度需要有乙個界定,稱為:最小支援度和最小置信度;

如何找到滿足條件的關聯規則,在這裡學習一種apriori演算法

兩個步驟

1、尋找所有滿足最小支援度的頻繁集(滿足最小支援度的專案集合)

2、基於頻繁集產生規則

(在這裡解釋乙個概念:頻繁集(例如含有三個商品abd)的子集都是頻繁集—–子集代表著含有較少的商品例如子集商品a,那麼子集a的支援度肯定》=父集abd的支援度,所以子集a滿足頻繁集條件)

例項講解過程:

首先給出基本需要滿足的條件,最小支援度0.5,得到次數2次;

1、第一次掃瞄統計單個商品出現的個數c1,剔除掉不符合條件(<2次)的得到f1;合併組合f1中的集合得到c2;

2、第二次掃瞄所有商品得到符合c2集的個數,去掉不符合條件的得到f2;再次組合得到c3;

3、利用同上方法,得到f3,此時f3只剩乙個集合,演算法結束;

利用如上方法可以找到最終滿足條件的規則,但是有乙個可以優化的地方;在上面我們解釋了乙個頻繁集的性質,即其子集也必須是頻繁集;利用這個性質,在我們得到的合併集合c2、c3等,可以在下一次掃瞄全集t之前進行簡化處理:如上的c3,其含有子集,而其根據c2其個數可以直接排除,所以在第三次掃瞄t的時候就沒有必要求的個數;同理其含有所以也可以直接排除;

最後我們來看一下apriori演算法的具體實現

對於如上演算法的理解其實已經是非常簡單的了,集合的選取、遞迴合併及剔除,然後就是計算概率選取滿足條件的規則即可。

如上就生成了頻繁集,而頻繁集不等價於關聯規則

那麼如何定義關聯規則

關聯規則是頻繁集的子集,對於其所有可能的子集進行最小支援度判斷,找到最終的關聯規則。

例項:

小結:

如上所述,m個商品集合生成的規則數量是比較龐大的,每次掃瞄所有商品進行計數代價也是很大的;所以應該結合實際情況,對k和最小支援度進行適當的調整,以達到更加切合實際、高效快捷的目的。

資料探勘 關聯規則挖掘

關聯規則 association rule 是資料中所蘊含的一類重要規律。關聯規則挖掘的目標是在資料專案中找出所有的併發關係 cooccurrence relationships 這種關係也稱為關聯 association 關聯規則挖掘的經典應用是購物籃 market basket 關聯規則挖掘並沒...

資料探勘之關聯規則

在資料探勘的知識模式中,關聯規則模式是比較重要的一種。屬於描述性模式,發現關聯規則的演算法屬於無監督學習的方法。關聯規則通過量化的數字描述物品甲的出現對物品乙的出現有多大的影響。一般用4個引數來描述關聯規則的屬性 1.可信度 子集 可信度是指出現了物品集a的事務t中,物品集b也同時出現的概率有多大。...

資料探勘之關聯規則挖掘(Apriori演算法)

一 概述 本篇博文主要闡述資料探勘相關的關聯規則挖掘的演算法 apriori演算法 主要介紹關聯規則的基本概念 apriori演算法原理和apriori演算法例項,文章末尾處附加apriori演算法源程式。二 關聯規則挖掘的基本概念 關聯規則挖掘發現大量資料中項集之間有趣的關聯關係。如果兩項或者多項...