1. 程式人生 > >資料探勘中的模式發現(一)頻繁項集、頻繁閉項集、最大頻繁項集

資料探勘中的模式發現(一)頻繁項集、頻繁閉項集、最大頻繁項集

Frequent Itemset(頻繁項集)

I={i1,i2,...,im}I=\{i_1, i_2, ..., i_m\}項(Item)的集合D={T1,T2,...,Tn}D=\{T_1, T_2, ...,T_n\}i[1,n]i∈[1,n]事務資料集(Transaction Data Itemsets),事務TiT_iII中若干項組成。

SS為由項組成的一個集合,S={iiI}S=\{i|i∈I\},簡稱項集(Itemset)。包含k個項的項集稱為k-項集

tt為一條事務, 如果StS\subseteq t, 則稱事務tt包含SS

SS的支援度sup(S)=(SD)×100%sup(S) = ({包含S的事務數量\over D中總的事務數量})\times 100\%

SS的支援度≥給定最小支援度,稱SS頻繁項集(Frequent Itemset)

例如,有交易資料庫

TID item
1 abc
2 abcd
3 bce
4 acde
5 de

TID為事務編號,item為事務資料集的內容。

現在有項集S

1={b,c}S_1 = \{b,c\},它出現在TID為1,2,3的事務中,也就是S1{a,b,c}S_1\subseteq \{a,b,c\}S1{a,b,c,d}S_1\subseteq \{a,b,c,d\}S1{b,c,e}S_1\subseteq \{b,c,e\}

所以S1S_1的支援度計數為3,支援度為353\over 5

如果支援度閾值小於60%60\%,那麼S1S_1就是一個頻繁項集。

Superset(超集)

若一個集合S2S_2中的每一個元素都在集合S

1S_1中,且集合S1S_1中可能包含S2S_2中沒有的元素,則集合S1S_1就是S2S_2的一個超集。S1S_1S2S_2的超集,則S2S_2S1S_1的真子集,反之亦然。

接著上面的例子,

TID item
1 abc
2 abcd
3 bce
4 acde
5 de

現在有項集S1={b,c}S_1 = \{b,c\},那麼它就是{b}\{b\}{c}\{c\}的超集。S1S_1也是{a,b,c}\{a,b,c\}等的真子集。

Max Pattern/Maximal Frequent Itemset(最大頻繁項集)

如果頻繁項集L的所有超集都是非頻繁項集,那麼稱L為最大頻繁項集稱最大頻繁模式,記為MFI (Maximal Frequent Itemset)。

頻繁項集是最大頻繁項集的子集。最大頻繁項集中包含了頻繁項集的頻繁資訊,且通常項集的規模要小几個數量級。所以在資料集中含有較長的頻繁模式時挖掘最大頻繁項集是非常有效的手段。

綜上,最大頻繁項集是各頻繁k項集中符合無超集條件的頻繁項集。

接著上面的例子,

TID item
1 abc
2 abcd
3 bce
4 acde
5 de

現在有項集S1={b,c}S_1 = \{b,c\},且有支援度閾值60%=60\%

那麼S1S_1就是一個頻繁項集,那麼我們來看看它的超集。

Superset count
abc 2
bcd 1
bce 1
abcd 1
abce 0
bcde 0
abcde 0

由此可見,它們的支援度都小於60%60\%,所以它們都不是頻繁項集。

所以S1S_1的所有超集都不是頻繁項集,則它是最大頻繁項集。

close pattern(閉合頻繁項集)

所謂閉項集,就是指一個項集X,它的**直接超集(最小的嚴格超集)**的支援度計數都不等於它本身的支援度計數。如果閉項集同時是頻繁的,也就是它的支援度大於等於最小支援度閾值,那它就稱為閉頻繁項集。

接著上面的例子,

TID item
1 abc
2 abcd
3 bce
4 acde
5 de

因為項集{b,c}出現在TID為1,2,3的事務中,所以{b,c}的支援度計數為3。而{b,c}的直接超集:{a,b,c}的支援度計數為2,都不等於{b,c}的支援度計數3,所以{b,c}為閉項集,如果支援度閾值為40%,則{b,c}也為閉頻繁項集。

項集{a,b}出現在TID為1,2的事務中,其支援度計數為2。而它的直接超集{a,b,c}支援度計數也為2,所以{a,b}不是閉項集。

相關推薦

【機器學習】資料演算法——關聯規則,相關概念,評價指標

綜述:        資料探勘是指以某種方式分析資料來源,從中發現一些潛在的有用的資訊,所以資料探勘又稱作知識發現,而關聯規則挖掘則是資料探勘中的一個很重要的課題,顧名思義,它是從資料背後發現事物之間可能存在的關聯或者聯絡。 關聯規則的目的在於在一個數據集中找出項之間的關

資料導論學習筆記

第一章 緒論 資料探勘:在大型資料儲存庫中,自動的發現有用資訊的過程。 資料庫中知識發現過程(KDD): 輸入資料—>資料預處理---->資料探勘---->後處理---->資訊 資料預處理:特徵選擇,維規約,規範集,選擇資料子集 後處理:

資料 | 親和性分析

首先解釋一下什麼是親和性 舉一個簡單的例子:當顧客在購買一件商品時,往往還會購買另一件商品。比如我們買了麵包就還會買牛奶,買了刀就還會買叉子等等。也就是說,顧客買了商品A,還會購買商品B,這就是親和性的簡單例子 那麼,親和性分析就是對這種規律進行分析,商家就

資料入門系列教程之親和性分析

資料探勘入門系列教程(一)之親和性分析 教程系列簡介 系列地址:https://www.cnblogs.com/xiaohuiduan/category/1661541.html 該教程為入門教程,為博主學習資料探勘的學習路徑步驟。教程為入門教程,從最簡單的開始。使用的程式語言為Pytho

資料模式發現頻繁頻繁頻繁

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_

資料 | 親和性分析

既然統計出所有規則的支援度和置信度,那麼我們就想知道到底哪一條規則是支援度或置信度最高的,以便商家分析出顧客的習慣。首先我們要給支援度和置信度字典進行排序 這裡需要用到operator模組的itemgetter函式 # 對支援度字典進行排序 from oper

【機器學習】資料演算法——關聯規則,挖掘過程,Aprioir演算法

關聯規則挖掘的原理和過程 從關聯規則(一)的分析中可知,關聯規則挖掘是從事務集合中挖掘出這樣的關聯規則:它的支援度和置信度大於最低閾值(minsup,minconf),這個閾值是由使用者指定的。根據 support=(X,Y).count/T.countsupp

基於R的資料方法與實踐3——決策樹分析

決策樹構建的目的有兩個——探索與預測。探索方面,參與決策樹聲場的資料為訓練資料,待樹長成後即可探索資料所隱含的資訊。預測方面,可以藉助決策樹推匯出的規則預測未來資料。由於需要考慮未來資料進入該模型的分類表現,因此在基於訓練資料構建決策樹之後,可以用測試資料來衡量該模型的穩健

基於R的資料方法與實踐1——資料準備

1、資料檢查 資料檢查是資料探勘的第1步,從不同的維度檢查資料,找出其中有問題的資料以便對其進行修正。 1.1 資料型別 檢視資料的構成與形態,尤其是各列的屬性。 > library(MASS) > data(ChickWeight) > str(Chic

基於R的資料方法與實踐2——關聯規則

關聯規則是從龐大的資料中提取一系列變數或因子間關係,以探索資料的變數或專案間隱含的關係。 1、基本原理 關聯規則通常用支援度、置信度、增益三個指標來分別表示其顯著性、正確性和價值。通過給性最小支援度、最小置信度作為門檻值。若該規則的支援度與置信度大於門檻值,則說明該規則有助

資料 | 親和性分析

上回講了親和性分析的簡單分析,但只計算了一條規則的支援度和置信度,現在來說說怎麼計算所有規則的支援度和置信度 首先先建立字典,分別建立有效規則字典、無效規則字典以及條件相同的規則數量 # 建立字典,儲存規則有效資料及無效資料 from collection

資料-目錄-特徵處理feature

Feature Extractors(特徵提取) TF TF-IDF Word2Vec CountVectorizer Feature Transformers(特徵變換) Tokenizer(分詞器)

Thinking in BigData12資料之有指導資料方法模型序3

       接著上面部落格繼續探討:有指導資料探勘方法模型步驟 5、修復問題資料        所有資料都是髒的。所有的資料都是有問題。究竟是不是問題有時可能隨著資料探勘技術的變化而變化。對於某些技術,例如決策樹,缺失值和離群點並不會造成很大的麻煩,但是對於其他技術,

資料入門系列教程之分類問題OneR演算法

資料探勘入門系列教程(二)之分類問題OneR演算法 資料探勘入門系列部落格:https://www.cnblogs.com/xiaohuiduan/category/1661541.html 專案地址:GitHub 在上一篇部落格中,我們通過分析親和性來尋找資料集中資料與資料之間的相關關係。這篇部落

資料入門系列教程之scikit-learn框架基本使用以K近鄰演算法為例

資料探勘入門系列教程(三)之scikit-learn框架基本使用(以K近鄰演算法為例)簡介scikit-learn 估計器載入資料集進行fit訓練設定引數預處理流水線結尾 資料探勘入門系列教程(三)之scikit-learn框架基本使用(以K近鄰演算法為例) 資料探勘入門系列部落格:https://

資料入門系列教程之基於scikit-lean實現決策樹

資料探勘入門系列教程(四)之基於scikit-lean決策樹處理Iris載入資料集資料特徵訓練隨機森林調參工程師結尾 資料探勘入門系列教程(四)之基於scikit-lean決策樹處理Iris 在上一篇部落格,我們介紹了決策樹的一些知識。如果對決策樹還不是很瞭解的話,建議先閱讀上一篇部落格,在來學習這

資料入門系列教程之Apriori演算法Python實現

資料探勘入門系列教程(五)之Apriori演算法Python實現載入資料集獲得訓練集頻繁項的生成生成規則獲得support獲得confidence獲得Lift進行驗證總結參考 資料探勘入門系列教程(五)之Apriori演算法Python實現 在上一篇部落格中,我們介紹了Apriori演算法的演算法流

資料入門系列教程資料特徵選擇

目錄 資料探勘入門系列教程(六)之資料集特徵選擇 簡介 載入資料集Adult 特徵選擇 選擇最佳特徵 總結 資料探勘入門系列教程

資料入門系列教程之樸素貝葉斯進行文字分類

資料探勘入門系列教程(七)之樸素貝葉斯進行文字分類 貝葉斯分類演算法是一類分類演算法的總和,均以貝葉斯定理為基礎,故稱之為貝葉斯分類。而樸素貝葉斯分類演算法就是其中最簡單的分類演算法。 樸素貝葉斯分類演算法 樸素貝葉斯分類演算法很簡單很簡單,就一個公式如下所示: P(B|A) = \frac{P(A|B) P

資料入門系列教程之使用神經網路基於pybrain識別數字手寫MNIST

[TOC] ## 資料探勘入門系列教程(八)之使用神經網路(基於pybrain)識別數字手寫集MNIST 在本章節中,並不會對神經網路進行介紹,因此如果不瞭解神經網路的話,強烈推薦先去看《西瓜書》,或者看一下我的上一篇部落格:[資料探勘入門系列教程(七點五)之神經網路介紹](https://www.cnb