1. 程式人生 > >關聯規則(頻繁項集)——Apriori

關聯規則(頻繁項集)——Apriori

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={bread,beer,cake,cream,milk,tea}的所有專案產生候選項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的路徑<milk:8,bread:5,tea:3,cream:2>和<milk:8,bread:5,cream:1>,根據cream的計數,將上述路徑化簡為關於cream的如下資訊:<milk,bread,tea:2>,<milk,bread:1>,然後建立關於cream的FP-tree ,如下圖:
 

 包含專案cream的所有頻繁項集
 
根據上述方法一次建立關於tea,bread,milk的FP-tree.得到所有的頻繁項集。
 FP-growth演算法的優點:
 只遍歷資料庫2遍,挖掘時間會比Apriori短。
 FP-growth演算法的缺點:
 建立FP-tree,會佔用大量的記憶體空間,當生成和釋放海量的條件樹時,將佔用很多的運算時間和計算機空間。
 
 


相關推薦

關聯規則頻繁——Apriori

1.該問題最初是對“購物籃”提出來的,著名例子是“尿布與啤酒”。 2.相關概念:  關聯規則的支援度:Support(A,B)=包含A和B的事務數/事務總數  關聯規則的置信度:Confidence(A,B)= 包含A和B的事務數/包含A事務數  頻繁項集:項集的頻率大於等

Apriori演算法簡介---關聯規則頻繁演算法

  ①Apriori演算法的缺點:(1)由頻繁k-1項集進行自連線生成的候選頻繁k項集數量巨大。(2)在驗證候選頻繁k項集的時候需要對整個資料庫進行掃描,非常耗時。   ②網上提到的頻集演算法的幾種優化方法:1. 基於劃分的方法。2. 基於hash的方法。3. 基於取樣的方法。4. 減少交易的個數。  

機器學習實戰十一FP-growth頻繁

目錄 0. 前言 學習完機器學習實戰的FP-growth,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 本篇綜合了先前的文章,如有不理解,可參考: 如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心的~ 0. 前

海量資料探勘MMDS week2: Association Rules關聯規則頻繁挖掘

海量資料探勘Mining Massive Datasets(MMDs) -Jure Leskovec courses學習筆記之association rules關聯規則與頻繁項集挖掘 {Frequent Itemsets: Often called "associatio

第11章:使用Apriori演算法進行關聯分析計算頻繁

目的:找到資料集中事務的關係,如超市中經常一起出現的物品集合,想找到支援度超過0.8的所有項集 概念: 頻繁項集:指經常出現在一起的物品集合; 關聯規則:指兩個物品之間可能存在很強的關係,如一個人買了什麼之後很大可能會買另一種東西; 支援度:資料集中包含該項集的記錄所佔的比例;保

資料探勘之關聯分析二頻繁的產生

頻繁項集的產生 格結構(lattice structure)常常用來表示所有可能的項集。 發現頻繁項集的一個原始方法是確定格結構中每個候選項集的支援度。但是工作量比較大。另外有幾種方法可以降低產生頻繁項集的計算複雜度。 1. 減少候選項集的數目。如先驗

mysql中的字符集和校對規則mysql校對

1、簡要說明介紹 字符集和校對規則 字符集是一套符號和編碼。校對規則是在字符集內用於比較字元的一套規則。 MySql在collation提供較強的支援,oracel在這方面沒查到相應的資料。 不同字符集有不同的校對規則,命名約定:以其相關的字符集名開始,通常包括一個語言名,並且

海量資料探勘MMDS week2: 頻繁挖掘 Apriori演算法的改進:基於hash的方法

海量資料探勘Mining Massive Datasets(MMDs) -Jure Leskovec courses學習筆記之關聯規則Apriori演算法的改進:基於hash的方法:PCY演算法, Multistage演算法, Multihash演算法 Apriori演

海量資料探勘MMDS week2: 頻繁挖掘 Apriori演算法的改進:非hash方法

海量資料探勘Mining Massive Datasets(MMDs) -Jure Leskovec courses學習筆記之關聯規則Apriori演算法的改進:非hash方法 - 大資料集下的頻繁項集:挖掘隨機取樣演算法、SON演算法、Toivonen演算法 Apri

頻繁挖掘Apriori演算法及其Python實現

Apriori演算法是通過限制候選產生髮現頻繁項集。 Apriori演算法使用一種稱為逐層搜尋的迭代方法,其中k項集用於探索(k+1)項集。首先,通過掃描資料庫,累計每個項的計數,並收集滿足最小支援度的項,找出頻繁1項集的集合,記為L1。然後,使用L1找出頻繁

資料探勘---頻繁挖掘Apriori演算法的C++實現

1 準備 2 作業粗糙翻譯內容 2.1 前言 程式設計作業可能比書面作業花費更多的時間,而這也算是你最後成績的10%,所以請提前開始; 這是個人作業,你可以與你的同學或者老師交流,但是不能夠共享程式碼和抄襲; 類似的庫或頻繁模式挖掘演算

關聯規則頻繁Apriori演算法

轉載地址:http://liyonghui160com.iteye.com/blog/2080531 一、前言               頻繁模式和對應的關聯或相關規則在一定程度上刻畫了屬性條件與類標號之間的有趣聯絡,因此將關聯規則挖掘用於分類也會產生比較好的效果。

R_Studio(關聯)Apriori演算法尋找頻繁的方法

      使用Apriori演算法尋找頻繁項集        #匯入arules包 install.packages("arules") library ( arules ) setwd('D:\\data') Gary<-

機器學習實戰Machine Learning in Action學習筆記————08.使用FPgrowth演算法來高效發現頻繁

機器學習實戰(Machine Learning in Action)學習筆記————08.使用FPgrowth演算法來高效發現頻繁項集關鍵字:FPgrowth、頻繁項集、條件FP樹、非監督學習作者:米倉山下時間:2018-11-3機器學習實戰(Machine Learning in Action,@autho

Apriori關聯分析與FP-growth挖掘頻繁

1 問題引入 在去雜貨店買東西的過程,實際上包含了機器學習的應用,這包括物品的展示方式、優惠券等。通過檢視哪些商品經常被一起購買,商店可以瞭解使用者的購買習慣,然後將經常被一起購買的物品擺放在一起,有

基於關聯規則的推薦-獲取頻繁

關聯規則: 關聯規則是形如X->Y的蘊含表示式,其中X和Y是不相交的項集,即X∩Y=∅。 關聯規則的強度可以用它的支援度(support)和置信度(confidence)來度量 支援度確定規則可以用於給定資料集的頻繁程度(能夠關聯的次數) 置信度確定

資料探勘中的模式發現頻繁頻繁、最大頻繁

Frequent Itemset(頻繁項集) 稱I={i1,i2,...,im}I=\{i_1, i_2, ..., i_m\}I={i1​,i2​,...,im​}為項(Item)的集合,D={T1,T2,...,Tn}D=\{T_1, T_2, ...,T_

獲取頻繁關聯規則的Python實現【先驗演算法】

# -*- coding: utf-8 -*- #引數設定 data_file = 'F:\\user_match_stat\\itemset.txt' #檔案格式csv,形如:item1,item2,item3 #每個事務佔一行 frequent_itemsets_sav

手推FP-growth (頻繁模式增長算法------挖掘頻繁

att 相同 事務 支持 apr 一次 多個 什麽 統計 一.頻繁項集挖掘為什麽會出現FP-growth呢? 原因:這得從Apriori算法的原理說起,Apriori會產生大量候選項集(就是連接後產生的),在剪枝時,需要掃描整個數據庫(就是給出的數據),通過模式匹配檢查候

python關聯分析 __機器學習之FP-growth頻繁演算法

FP-growth演算法 專案背景/目的 對於廣告投放而言,好的關聯會一定程度上提高使用者的點選以及後續的諮詢成單 對於產品而言,關聯分析也是提高產品轉化的重要手段,也是大多商家都在做的事情,尤其是電商平臺 曾經我用SPSS Modeler做過Apriori關聯分析模型,也能