1. 程式人生 > >海量資料探勘MMDS week2: Association Rules關聯規則與頻繁項集挖掘

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

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

{Frequent Itemsets: Often called "association rules," learn a number of techniques for finding items that appear unusually often together.  The classical story of "beer and diapers" (people who buy diapers in a supermarket are unusually likely to buy beer) is an example of this data-mining technique.}

題外話: lz真的不建議看這個視訊,當你看了這個視訊後,你會發現,原本一個簡單的問題可以通過很優雅的方式簡單地解釋清楚的時候,主講人總是偏離方向,以一種相當繁瑣隱晦的形式講到另一個地方去,而讓人一下子就可以明白的解釋總是講不出來,讓人看不懂(說真的,那個比較老的主講人講解的是相當水),並且製作的ppt中的語句完全不是最好的,總是缺點什麼,總要加一點註釋在下面才能更好明白那是什麼意思。所以關於頻繁項集挖掘以及關聯規則,lz建議看看《資料探勘概念與技術》這本書中第六章 挖掘頻繁模式、關聯和相關性:基本概念與方法的內容,講的相當清晰易懂)

Frequent Itemsets頻繁項集

與相似性分析的區別:相似性分析,研究的物件是集合之間的相似性關係。而頻繁項集分析,研究的集合間重複性高的元素子集。

Market-Basket 模型及其應用

Note: 一個item可以看成是買的一個東西,其集合就是項集。一個basket就是買的東西的集合,也是一個項集,但一般看作是多個項集的集合。

頻繁項集的應用:真實超市購物籃的分析,文件或網頁的關聯程式分析,文件的抄襲分析,生物標誌物(疾病與某人生物生理資訊的關係)

應用一:人們會同時買什麼


Note:

1. Run a sale on diapers; raise price of beer.是一種營銷策略,但是反過來卻不是。這就要分析頻繁項集的原因。

2. 當然這種營銷策略只對實體店有效。超市購物籃的分析,主要是針對實體銷售商,而不是線上零售商,這是因為實體銷售可以找點頻繁項集合後,可以採取對一種頻繁項商品促銷,而擡高相關的頻繁項其他商品的價格來獲利,因為客戶一般不會去另外一家店購買其他的商品。而這種策略在線上銷售時,會忽略“長尾”客戶的需求。對於實體銷售,商品的數量和空間資源有限,所以只能針對一些暢銷商品進行關注和指定策略。而對於線上銷售,沒有資源限制,而且客戶切換商戶很方便,所以實體店銷售的策略不合適線上銷售,線上銷售更應該關注相似客戶群的分析,雖然他們的購買的產品不是最暢銷、頻繁的,但對客戶群的偏好分析,可以很容易做到對每個客戶進行定製化廣告推薦,所以,相似性分析對線上銷售更為重要。

應用二:抄襲plagiarism檢測


Note: the basket corresponding to a sentence contains all the documents in which that sentence appears.
應用三:詞關聯

關聯規則Association Rules、支援度與置信度

Support支援度

 

支援度: 包含頻繁項集F的集合的數目。項集的支援度就是項集應該在所有basket中出現的數目。>=項集的支援度的項集都是頻繁項集。

Confidence置信度

  

置信度:confidence(A=>B) = P(B|A) = support(A U B)/support(A) = support_count(A U B)/support_count(A),就是itemA存在時itemB也存在的條件概率,也是頻繁項A與某項B的並集的支援度 與 頻繁項集A的支援度的比值。

尋找關聯規則和頻繁項集

關聯規則挖掘兩個步驟

1. 尋找所有頻繁項集(滿足最小支援度的項集)

2. 由頻繁項集產生關聯規則(滿足最小支援度和最小可信度的項集)

Note: 確定頻繁項集,{i}只需要support,而{i,j}則需要support*confidence.

Note:

1. 這種尋找關聯規則的方法步驟是:先找到支援度>=cs的,然後去掉其中一個item j,找到支援度>=s的,這樣去掉j後的項集{i}->j的置信度>=c,{i}->j就是一個關聯規則。

2. 這種解釋完全沒有《資料探勘概念與技術》中的解釋清晰明瞭。

頻繁項集的計算模型


演算法瓶頸


尋找頻繁二項集的演算法

Naive Algorithm樸素演算法

關聯規則的整體效能有第一步決定,給定n項,可能有2的n次方個候選項。當然這個演算法不是很有效,後面會用Apriori演算法代替。

頻繁項對{i, j}在記憶體中的存放方式

{用什麼資料結構來儲存頻繁二項集數對更有效}

 

Triangular Matrix三角陣方法

{採用一個數組來儲存這個三角陣中的元素,它可以節省二維陣列一半的空間}


Note: translate from an items name in the data to its integer.A hash table whose key is the original name of the item in the data will do just fine.


Note: 因為pairs存放在一個一維陣列中。則頻繁對(i, j)存放的位置就是上面這個公式。

Tabular三元組方法

{當頻繁項對的數目小於C(n, 2)的數目的1/3時,三元組的方式相對於三角陣比較有優勢}

Note: 連結串列實現需要指標指向下一個,這樣就是16p而不是12p了。

兩種方法的比較和取捨

如果有大於1/3的候選二項集是頻繁二項集,那麼使用Triangular結構儲存比較好。if more than one-third of possible pairs are present in at least one basket,you prefer the triangular matrix.

設頻繁一項集數目為N,頻繁二項集的數目為M,候選二項集自然就是N^2/2。則使用Triangular矩陣儲存頻繁二項集的空間為4*N^2/2, 使用Tabular結構儲存頻繁二項集的空間為12*M。當大於1/3的候選二項集是頻繁二項集,也就是1/3 * N^2/2 < M,這時4*N^2/2 < 12*M,使用Triangular矩陣儲存頻繁二項集的空間較小。

A-priori演算法

{通過限制候選產生來發現頻繁項集。Aprior有點類似廣度優先的演算法。}

頻繁項集的先驗性質:單調性和反單調性

Note: 尋找頻繁二項集是掃描兩次,頻繁k項集當然是k次。if you want to go pass pairs to larger item sets,then you need k passes, define frequent items that's of size up to K.

A-priori演算法步驟

頻繁二項集的挖掘

  

If there's still too many counts to maintain in main memory,we need to try something else,a different algorithm,splitting the task among different processors, or even buying more memory.

A-Priori演算法中使用Triangular Matrix

  

Note:

1. 也就是第一次掃描後,選出頻繁一項集並重新編號,組成Triangular Matrix。在Triangular Matrix中再選出頻繁二項集重新編號,並組成Triangular Matrix,再進行下一次Apriori演算法的計算。

2. There are better ways to organize the table that save space,if the fraction of items that are frequent is small.For example, we could use a hash table in which we stored only the frequent items with the key being the old number and the associated value being the new number.(也就是Tabular?)

頻繁K項集挖掘

 

資料探勘概念與技術中對Apriori演算法的圖解


資料探勘概念與技術中對Apriori演算法的描述

是不是簡單清晰得多!

Apriori演算法記憶體需求分析

每次計算一個頻繁k{k = 1-K}項集,都要掃描一次basket(transaction交易)

Apriori演算法的記憶體的使用情況,左邊為第一步時的記憶體情況,右圖為第二步時記憶體的使用情況

pipi

在第一步(對所有item掃描計數,並選出頻繁一項集)裡,我們只需要兩個表,一個用來儲存項的名字到一個整數的對映,用這些整數值代表項,一個數組來計數這些整數。


Reviews複習

Triangular Matrix和Tabular的選擇


Note: S是N和M的函式。

從上面分析可知:如果有大於1/3的候選二項集是頻繁二項集(也就是1/3 * N^2/2 < M <=> N^2 < 6M),那麼使用Triangular結構儲存比較好。並且使用Triangular矩陣儲存頻繁二項集的空間為4*N^2/2, 使用Tabular結構儲存頻繁二項集的空間為12*M。

N = 10,000, M=50,000,000,則N^2 = 10^8 < 6M=3*10^8,故使用Triangular矩陣來儲存頻繁二項集,空間為S = 4*N^2/2=2*10^8。(的確比12*M = 6*10^8小)

N = 100,000, M=40,000,000,則N^2 = 10^10 > 6M=2.4*10^8,故使用Tabular來儲存頻繁二項集,空間為S =12*M=4.8*10^8。(的確比4*N^2/2= 2*10^10小)

N = 100,000, M=100,000,000,則N^2 = 10^10 > 6M=6*10^8,故使用Tabular矩陣來儲存頻繁二項集,空間為S =12*M=12*10^8。(的確比4*N^2/2= 2*10^10小)

N = 30,000, M=100,000,000,則N^2 = 9*10^8 > 6M=6*10^8,故使用Tabular矩陣來儲存頻繁二項集,空間為S =12*M=18*10^8。(的確比4*N^2/2= 12*10^8小)

相關推薦

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

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

海量資料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

資料中的模式發現(一)頻繁頻繁、最大頻繁

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_

海量資料MMDS week4: 推薦系統之資料降維Dimensionality Reduction

海量資料探勘Mining Massive Datasets(MMDs) -Jure Leskovec courses學習筆記 推薦系統Recommendation System之降維Dimensionality Reduction{部落格內容:推薦系統有一種推薦稱作隱語義模型

HAWQ + MADlib 玩轉資料之(七)——關聯規則方法之Apriori演算法

一、關聯規則簡介        關聯規則挖掘的目標是發現數據項集之間的關聯關係,是資料挖據中一個重要的課題。關聯規則最初是針對購物籃分析(Market Basket Analysis)問題提出的。假設超市經理想更多地瞭解顧客的購物習慣,特別是想知道,哪些商品顧客可能會在一次購

DataMining學習1_資料技術(三)——關聯分析

3、關聯分析 3.1、基本概念  (1)通常認為項在事物中出現比不出現更重要,因此項是非對稱二元變數。(2)關聯規則是形如X->Y的蘊涵表示式,其中X和Y是不相交的項集,即X交Y=空。(3)由關聯規則作出的推論並不必然蘊涵因果關係。它只表示規則前件和後件中的項明

資料十大經典演算法--CART: 分類迴歸樹

一、決策樹的型別  在資料探勘中,決策樹主要有兩種型別: 分類樹 的輸出是樣本的類標。 迴歸樹 的輸出是一個實數 (例如房子的價格,病人呆在醫院的時間等)。 術語分類和迴歸樹 (CART) 包含了上述兩種決策樹, 最先由Breiman 等提出.分類樹和迴歸樹有些共同點和不同

資料—LDA,PCA特徵提取降維SVM多分類在人臉識別中的應用-資料ORL

@vision 3 @author:馬旭 @tel:13952522076 @email:[email protected] 執行:執行predict.m檔案; 結果:時間一般為0.2秒左右,正確率100%;(因為測試集比較少) 預處理資料preprocess

程式設計師面試、演算法研究、程式設計藝術、紅黑樹、資料5大經典原創系列集錦總結

作者:July--結構之法演算法之道blog之博主。 時間:2010年10月-2012年9月 (一直在收錄本blog最新updated文章)。 出處:http://blog.csdn.net/v_JULY_v 。 宣告:版權所有,侵犯必究。 前言    開博已過20個

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

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

資料演算法之-關聯規則挖掘(Association Rule)

在資料探勘的知識模式中,關聯規則模式是比較重要的一種。關聯規則的概念由Agrawal、Imielinski、Swami 提出,是資料中一種簡單但很實用的規則。關聯規則模式屬於描述型模式,發現關聯規則的演算法屬於無監督學習的方法。 一、關聯規則的定義和屬性   考察一

資料資料分析、海量資料處理的面試題(總結july的部落格)

緣由 由於有面試通知,現在複習一下十道和海量資料處理相關的題。兩篇部落格已經講的非常完備了,但是我怕讀懂了並非真的懂,所以必須自己複述一遍。 面試歸類 下面6個方面覆蓋了大多數關於海量資料處理的面試題: 分而治之/hash對映 + hash統計 + 堆/快速/歸併排序

資料領域中的分類和迴歸區別是什麼?

先簡單的說下吧,下面給出實際例子 類和迴歸的區別在於輸出變數的型別。定量輸出稱為迴歸,或者說是連續變數預測;定性輸出稱為分類,或者說是離散變數預測。舉個例子:預測明天的氣溫是多少度,這是一個迴歸任務;預測明天是陰、晴還是雨,就是一個分類任務。  拿支援向量機舉個例子,分類問題

資料就業前景怎麼樣?hadoop工程師、資料資料分析師薪資多少?

近幾年來,大資料這個詞突然變得很火,不僅納入阿里巴巴、谷歌等網際網路公司的戰略規劃中,同時也在我國國務院和其他國家的政府報告中多次提及,大資料無疑成為當今網際網路世界中的新寵兒。 《大資料人才報告》顯示,目前全國的大資料人才僅46萬,未來3-5年內大資料人才的缺口將高達150萬,越來越多

利用Python學習資料【0】

相信看到這篇文章的你一定是對資料分析,資料探勘有興趣,或者想從事和方面。本文不再累述python對資料分析的重要,資料分析這門的由來之類的。 在這裡,我單刀直入,已我學習資料探勘3年來的經歷告訴大家怎麼去學,以讓大家少走彎路。純個人見解,如有不對,還請各位留言指教。 話不多說,直接放圖。

利用Python學習資料【2】

本文結合程式碼例項待你上手python資料探勘和機器學習技術。   本文包含了五個知識點: 1. 資料探勘與機器學習技術簡介   2. Python資料預處理實戰   3. 常見分類演算法介紹  

利用 Python學習資料【1】

覆蓋使用Python進行資料探勘查詢和描述資料結構模式的實踐工具。 第一節 介紹 資料探勘是一個隱式提取以前未知的潛在有用的資料資訊提取方式。它使用廣泛,並且是眾多應用的技術基礎。 本文介紹那些使用Python資料探勘實踐用於發現和描述結構模式資料的工具。近些年來,Python在

資料核心技術揭祕》筆記

原先我對於資料探勘只停留在了爬蟲獲取資料,使用工具對資料進行清洗,然後整理彙總出需要的資訊的這個層次。看完這本書之後才發現了之前使用爬蟲得到資料只能叫做資料獲取,真正的資料探勘遠遠複雜,在資料探勘中有著那麼多的magic的演算法,其中每個單元的知識都需要一本書去好好學習,這裡只是簡單的介

python 資料分析 資料 人工智慧 教程

python 資料分析 資料探勘 人工智慧 教程 python 資料分析 資料探勘 人工智慧 教程 資料分析 pyhon程式碼 資料分析英文教程 上百g資料,用於資料分析,大資料 新聞資料 產業資料 谷歌資料 維基百科等等 資料 統一解壓密碼 qq92313271