1.該問題最初是對「購物籃」提出來的,著名例子是「尿布與啤酒」。
2.相關概念:
關聯規則的支援度:support(a,b)=包含a和b的事務數/事務總數
關聯規則的置信度:confidence(a,b)= 包含a和b的事務數/包含a事務數
頻繁項集:項集的頻率大於等於最小支援度。
強相關規則:同時滿足最小支援度和最小置信度。
3.關聯規則挖掘的步驟:
生成頻繁項集,然後生成規則
4.apriori演算法:
思路:第一步先掃瞄資料庫一遍,通過計算每乙個1項集的支援度,得到l1(lk為k頻繁集);第二步是反覆迭代的方法找到l2,l3...直到不能再找到新的頻繁項集時停止迭代。在搜尋lk時,是用lk-1自連線方法產生候選集ck,先用一定的剪枝略裁剪候選項;再掃面資料庫,計算ck的支援度,刪除非頻繁項集,便得到lk.
定理1:頻繁項集的所有非空子集都是頻繁項集。
定理2:非頻繁項集的超集一定是非頻繁項集。
5.例項:對於表1-1的交易記錄,設定sup=3/10,利用apriori產生頻繁項集.
表1-1
(1)由i=的所有專案產生候選項c1,去掉小於sup的項集。得到表1-2.
表1-2
(2)利用l1中各項組合連線,產生候選項c2,然後掃瞄記錄,得到支援度,然後去掉小於sup的項集,得到l2. 如表1-3所示。
表1-3
(3)利用l2中的各項組合連線產生候選項c3,掃瞄記錄,獲得支援度,去掉小於sup的項集,得到l3,如表1-4所示。
表1-4
(4)重複上述步驟,c4為空,所有頻繁項集被找到,演算法停止。
6.apriori演算法的優點:空間複雜度小,並有兩個先驗性質。
apriori演算法的缺點:需要掃瞄資料庫的次數太多,產生的候選項集ck很多。
7.fp-growth演算法:
其是對apriori演算法的改進,是基於fp-tree的頻繁模式增長演算法,其不生成候選項集。
思想:分而治之。在兩次掃瞄資料庫後,把資料庫壓縮到一棵頻繁模式樹(fp-tree),再將頻繁模式樹分成一些條件fp樹,每乙個條件fp樹和乙個頻繁項集相關聯,最後,對所有的條件fp樹進行挖掘。
步驟:(1)構造fp樹,fp樹是事務資料庫的壓縮表示,每個事務都對映到fp樹中的一條路徑。
針對上例,利用fp-tree思想,先構造表頭和fp-tree,如下圖:
(2)利用fp樹產生頻繁項集;
fp增長演算法以自底向上的方式搜尋fp樹,從表項(cream:3)出發,可以找到包含cream的路徑和,根據cream的計數,將上述路徑化簡為關於cream的如下資訊:,,然後建立關於cream的fp-tree ,如下圖:
包含專案cream的所有頻繁項集
根據上述方法一次建立關於tea,bread,milk的fp-tree.得到所有的頻繁項集。
fp-growth演算法的優點:
只遍歷資料庫2遍,挖掘時間會比apriori短。
fp-growth演算法的缺點:
建立fp-tree,會占用大量的記憶體空間,當生成和釋放海量的條件樹時,將占用很多的運算時間和計算機空間。
頻繁項集與關聯規則挖掘 1
我計畫整理資料探勘的基本概念和演算法,包括關聯規則挖掘 分類 聚類的常用演算法,敬請期待。今天講的是關聯規則挖掘的最基本的知識。關聯規則挖掘在電商 零售 大氣物理 生物醫學已經有了廣泛的應用,本篇文章將介紹一些基本知識和aprori演算法。啤酒與尿布的故事已經成為了關聯規則挖掘的經典案例,還有人專門...
頻繁項集產生強關聯規則的過程
頻繁項集 產生強關聯規則的過程 1.由apriori演算法 當然別的也可以 產生頻繁項集 2.根據選定的頻繁項集,找到它所有的非空子集 3.強關聯規則需要滿足最小支援度和最小置性度 假設關聯規則是 a b support a b confidence a b p b a 這裡求概率都可以替換為求支援...
關聯規則Apriori
首先介紹的是啤酒和尿布的故事 上網自查 這是學習關聯規則必須知道的乙個故事。頻繁項集,關聯規則,支援度,置信度這四個概念貫穿apriori演算法的始終。如果乙個集合不是頻繁相集,那它的超集比然也不是頻繁相集。機器學習實戰例子 coding utf 8 from numpy import def lo...