機器學習-頻繁模式挖掘DHP算法詳解

2021-01-20 浮生偷閒

前言

數據挖掘領域的頻繁模式中,Apriori算法算是經典,然而該算法有如下的問題:

對資料庫多次掃描候選集數量龐大為計算候選集支持度所需負載較重

所以有了很多改進算法,DHP是其中一個基於散列優化的算法,主要用於縮小Ck的項集個數

原理

DHP算法生效於Apriori算法的剪枝步過程中。在第k次掃描時,生成每個事務的k+1項集,代入一個Hash函數中,生成一個Hash表,同時記錄每個桶中元素個數。

當生成Ck+1時,對Lk*Lk自連接產生的結果先進行代入上述Hash函數若所落的該桶的計數小於

最小支持閾值,則該元素必定不為頻繁項集,故可以過濾掉之,不放入Ck+1中由於所有具有相同Hash值的項的總個數小於最小支持閾值,如:

Hash(A,B)=4Hash(X,Y)=4

不妨假設4號桶元素個數小於最小支持閾值,則單個的(A,B)個數也必定小於最小支持閾值。故可排除

樣例詳解

假設最小支持度計數為2,即min_sup = 2並使用如下數據:

TransactionID ProductID

T1 A D E

T2 B D

T3 B D E

T4 C E

T5 C D

T6 C E

T7 A C D E

T8 C D E

第一次掃描

生成1-項目候選集C1,並統計其支持度,得到對應L1:

C1 ={{A},{B},{C},{D},{E}}L1 ={{A},{B},{C},{D},{E}}

在這次掃描的同時會對每個事務產生所有的2項集,即:

構造2項集的Hash函數,如:

hash(x,y)=(order(x)*10+ order(y))%7

order()函數返回參數的序,如本例中 order(A) = 1 , order(B) = 2 ....

將該次掃描得到的所有2項集代入Hash函數,得到對應Hash表:

將L1*L1自連接,得到:

L1 * L1 ={{A ,C},{A ,D },{A ,E},{B ,D},{B ,E},{C ,D },{C ,E},{D , E }}

對於上述結果的每個子集,代入hash(x,y)函數,並丟棄掉hash結果為2、4、5的子集(該桶的對應計數 < min_sup)得到:

C2 ={{A ,C},{A ,D },{A ,E},{B ,D },{C ,D },{C ,E},{D , E }}

相比於沒有應用Hash過濾的Apriori,可以多去除一個{B,E}項。

後續

後續步驟重複上述過程,指導不能產生頻繁項集,則終止。

總結

DHP算法作為Apriori算法的一個優化,基本過程還是與Apriori無異,但是通過建立k項集的Hash表,再生產Ck時,可以有效過濾掉非頻繁項集,從而達到壓縮Ck的目的,提高剪枝效率。

DHP算法的效率高低直接受所選用的hash函數影響,需要有一個比較好的hash函數

相關焦點

  • 想入門機器學習?機器之心為你準備了一份中文資源合集
    機器之心整理參與:機器之心編輯部機器學習日益廣為人知,越來越多的計算機科學家和工程師投身其中。不幸的是,理論、算法、應用、論文、書籍、視頻等信息如此之多,很容易讓初學者迷失其中,不清楚如何才能提升技能。本文作者依據自身經驗給出了一套快速上手的可行方法及學習資源的分類匯總,機器之心在其基礎上做了增益,希望對讀者有所幫助。
  • 【乾貨】數據挖掘中算法學習的2條進擊路線
    這說明你尚不具備深入開展數據挖掘算法學習的能力。你會發現到處都是門檻,很難繼續進行下去。 第1條路線(基於普通最小二乘法的)簡單線性回歸→線性回歸中的新進展(嶺回歸和LASSO回歸) → (此處可以插入Bagging和AdaBoost的內容) → Logistic回歸 →支持向量機(SVM) →感知機學習→神經網絡(初學者可先主要關注BP算法) →深度學習
  • 吳信東:數據挖掘算法的經典與現代
    作者 | 蔣寶尚編輯 | 叢 末6月6日,中國計算機學會(CCF)主辦的中國計算機學會青年精英大會(CCF YEF)在線上舉行,在「經典流傳的機器學習與數據挖掘算法」技術論壇上,明略科技首席科學家、明略科學院院長吳信東;UCLA 副教授孫怡舟;微軟雷蒙德研究院高級研究科學家東昱曉;CCF高級會員、清華大學計算機系長聘副教授朱軍;CCF高級會員、
  • 關聯規則的挖掘與應用——Apriori和CBA算法
    這種利用頻繁項集挖掘潛在關係的技術對於貨架擺放、購物推薦、捆綁銷售和新聞推薦等都很有應用價值。但在實際應用中,人們可能更願意關注由關聯規則理論挖掘出的頻繁項集,常將其用作基礎數據處理,再集成其他算法從而解決實際問題,比如說數據挖掘中常見的分類問題。
  • 機器學習入門必讀:6種簡單實用算法及學習曲線、思維導圖
    作者 | 盧譽聲來源 | 大數據DT(ID:hzdashuju)大部分的機器學習算法主要用來解決兩類問題——分類問題和回歸問題。在本文當中,我們介紹一些簡單但經典實用的傳統機器學習算法,讓大家對機器學習算法有一個基本的感性認識。有的人說機器學習入門並不難,有的人會覺得機器學習難以理解。那麼該如何去學習機器學習這種技術與方法呢?
  • 人工智慧之Apriori算法
    人工智慧機器學習有關算法內容,請參見公眾號「科技優化生活」之前相關文章。人工智慧之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下Apriori算法。^_^Apriori算法是經典的挖掘頻繁項集和關聯規則的數據挖掘算法,也是十大經典機器學習算法之一。
  • 數據挖掘(DataMining)概述
    數據挖掘確定挖掘目標:確定要發現的知識類型;選擇算法:根據確定的目標選擇合適的數據挖掘算法數據挖掘:運用所選算法,提取相關知識並以一定的方式表示。模式評估:對在數據挖掘步驟中發現的模式(知識)進行評估;知識表示:使用可視乎和知識表示相關技術,呈現所挖掘的知識。
  • 十大經典數據挖掘算法—Apriori
    打開APP 十大經典數據挖掘算法—Apriori 發表於 2018-02-04 09:37:56 關聯分析 關聯分析是一類非常有用的數據挖掘方法,能從數據中挖掘出潛在的關聯關係。
  • 二十、數據挖掘之Eclat算法介紹
    Eclat算法簡介數據格式Apriori算法和FpGrowth都是從項集格式{TID: itemset}的事物集中挖掘頻繁模式,其中TID是事物標誌符,而itemset是事物TID中購買的商品。這種數據格式成為水平數據格式。
  • 數據挖掘之關聯規則算法(Apriori)
    1 關聯規則挖掘定義大多數關聯規則挖掘算法通常採用的一種策略是,將關聯規則挖掘任務分解為如下兩個主要的子任務:頻繁項集產生(Frequent Itemset Generation2 Apriori算法介紹Apriori算法的原理通過限制候選產生發現頻發項集由頻繁項集產生關聯規則
  • 算法之「算法」:所有機器學習算法都可以表示為神經網絡
    隨後出現了一個又一個新算法,從邏輯回歸到支持向量機。但是眾所周知,神經網絡是算法的算法及機器學習的巔峰。我們可以說,神經網絡是對機器學習的普遍概括,而不是僅僅一次嘗試。儘管在技術上神經網絡對算法的表示和實際算法有很多差異,但是重點在於神經網絡表達了相同的思想,並且可以運用相同的策略處理問題,其表現與實際算法也是一樣的。然而一些人或許並不滿足於粗略地將算法轉換為神經網絡的形式,或者希望看到對於更複雜算法的通用應用,如k近鄰和樸素貝葉斯,而不是具體情況具體分析。
  • 模式識別與機器學習(教學大綱)|向量|貝葉斯|算法|神經網絡_網易訂閱
    以貝葉斯學習思想貫穿始終,並適時與其他重要知識點(如支持向量機、深度學習)等進行交叉和關聯,便於讀者在形成良好知識體系的同時保持對整個領域知識的把握。  全書共14章和4個附錄,循序漸進地剖析模式識別與機器學習領域。
  • 專欄| NLP概述和文本自動分類算法詳解
    原標題:專欄 | NLP概述和文本自動分類算法詳解 機器之心專欄 作者:達觀數據 本文根據達觀數據聯合創始人張健的直播內容《NLP 概述及文本自動分類算法詳解》整理而成。 一、 NLP 概述 1.
  • 流行的機器學習算法總結,幫助你開啟機器學習算法學習之旅
    AI的ML領域是為實現非常精確的目標而創建的,它引入了多種算法,從而可以更順暢地進行數據處理和決策。什麼是機器學習算法?機器學習算法是任何模型背後的大腦,可讓機器學習並使其更智能。這些算法的工作方式是,為它們提供第一批數據,並且隨著時間的流逝和算法的準確性的提高,額外的數據也被引入到算法中。
  • 從五個方面讓你了解人工智慧算法中的Apriori
    從五個方面讓你了解人工智慧算法中的Apriori 工程師振邦 發表於 2018-07-05 14:25:00 Apriori算法是經典的挖掘頻繁項集和關聯規則的數據挖掘算法
  • 機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用...
    共4天8節,講解機器學習和深度學習的模型理論和代碼實踐,梳理機器學習、深度學習、計算機視覺的技術框架,從根本上解決如何使用模型、優化模型的問題;每次課中,首先闡述算法理論和少量公式推導,然後使用真實數據做數據挖掘、機器學習、深度學習的數據分析、特徵選擇、調參和結果比較。
  • 電子郵件分類的最佳機器學習算法
    倫敦《星期日泰晤士報》邀請了兩位專家,將「布穀鳥」的語言模式與羅琳的《臨時空缺》以及其他幾位作者的著作進行了比較。在他們的分析結果強烈指向羅琳是作者之後,《泰晤士報》直接詢問出版商他們是否是同一個人,出版商證實了這一點。這本書一夜之間大受歡迎。電子郵件分類工作在相同的基本概念上。
  • 數據挖掘常用的算法
    知識發現(KDD)就是從大數據中識別出有效的、新穎的、潛在有用的,以及最終可理解的模式的過程。  數據挖掘是大數據知識發現(KDD)中不可缺少一部分,是大數據理論和應用中非常重要的一部分。數據挖掘是從大量的、不完全的、有噪聲的、模糊的、隨機的數據中,提取隱含在其中的、人們事先不知道的、但潛在的有用信息和知識的過程。
  • 資料|數據挖掘:概念、模型、方法和算法(第2版)/ 國外計算機科學...
    《數據挖掘:概念、模型、方法和算法(第2版)/國外計算機科學經典教材》介紹了通過分析高維數據空間中的海量原始數據來提取用於決策的新信息的尖端技術和方法。《數據挖掘:概念、模型、方法和算法(第2版)/國外計算機科學經典教材》開篇闡述數據挖掘原理,此後在示例的引導下詳細講解起源於統計學、機器學習、神經網絡、模糊邏輯和演化計算等學科的具有代表性的、前沿的挖掘方法和算法。書中還著重描述如何恰當地選擇方法和數據分析軟體併合理地調整參數。每章末尾附有複習題。
  • 數據挖掘:基於機器學習方法的POI品類推薦算法
    如何使用這些已校準的POI數據,挖掘出有價值的信息,本文進行了一些嘗試:利用機器學習方法,自動標註缺失品類的POI數據。例如,門店名稱為「好再來牛肉拉麵館」的POI將自動標註「小吃」品類。機器學習解決問題的一般過程: