1. 程式人生 > >資料探勘--挖掘頻繁模式、關聯和相關(1)

資料探勘--挖掘頻繁模式、關聯和相關(1)

學習是一件很苦的事情,但是有時卻是一件很神奇的事情,神奇到原本很抽象枯燥的知識點你卻可以取其精華的理解,這時效率最高

此時務必將心得寫下

以下讀書筆記來自我在閱讀《資料探勘-概念與技術》的一點感受

所謂挖掘頻繁模式,關聯和相關,即指在出現的資料集中找到一個經常出現的序列模式或者是一個經常出現的資料結構。就像搞CPU設計的人知道,Cache的預取機制有流預取和指標預取,前者就是發現流模式,即發現在地址上順序出現的序列模式,後者即發現指標連結模式,即鏈式資料結構。

比如一個人逛超市,她的購物籃裡可能裝有各種商品的組合。我們設想所有的商品構成全集,每種商品用0-1表示是否出現,那麼每個購物籃就可以用一個布林向量表示,如(0,1,...,1,0)可能表示:(沒有買酸奶,買了冰激凌...買了批薩,沒有買牛排),分析大量顧客的購物籃就可以得到一個用購物模式,這個模式我們用關聯規則表示,如 :

冰激凌=>批薩 [支援度 = 2%, 置信度 = 60%]

這個就表示所有顧客中有2%的人同時購買了冰激凌和批薩,而買了冰激凌的人中有60%的購買了批薩。一般來說,如果某個模式的支援度和置信度都大於各自的一個閾值,那麼這個模式就是一個我們感興趣的模式(這個就稱為強關聯規則)。

結合數學語言來說,就是I = {I1,I2,...Im}是所有物品的集合,而事務集D表示所有購物籃裡可能的物品組合,事務T是D中的一種可能,也是I中許多物品的一個組合,這個事務用TID標識。假設A,B都是一個元素集合,並且事務T包含A,B。定義關聯規則是形如A=>B的蘊含式。

若D中出現AUB的百分比為s,則稱A=>B在事務集D中成立的支援度為

s。所以support(A=>B) = P(AUB) // 注意,這裡的U表示事務集包含A和B的並集,而不是A or B的意思

若出現A的情況下出現B的百分比為c,則稱A=>B在事務集D中具有置信度c。所以confidence(A=>B) = P(B|A)

{冰激凌,批薩}是一個2項集。一個項集的出現頻率是包含項集的事務數,即包含該物品組合的籃子數量,這個稱為該項集的絕對支援度或計數:support_count,若這個值大於某個閾值,那麼這個項集就稱為頻繁項集

由條件概率公式可以得出:confidence(A=>B) = P(B|A) = support(AUB)/support(A) = support_count(AUB)/support_count(A)

那麼只要知道有多少籃子裡出現了批薩,以及有多少籃子裡同時出現冰激凌和批薩,就可以求得出現冰激凌的條件下出現批薩的概率。

關聯規則的挖掘就可以歸結為挖掘頻繁項集:

(1)找出所有的頻繁項集

(2)由頻繁項集產生強關聯規則

也就是說找出所有籃子裡常出現的組合,然後在這些組合中發現規律。

顯然第一步的複雜度遠高於第二步,因而總體效能由第一步決定。

顯然一個項集是頻繁的,其子集也是頻繁的,因為包含了該項集的事務必然也包含該項集的子集。換句話說只要冰激凌和批薩的組合是頻繁出現的,那麼冰激凌和批薩本身必然也是頻繁出現的。所以往往頻繁項集的資料量是非常大的。為了克服這個困難,引入了閉頻繁項集極大頻繁項集的概念。

若項集X是閉的,那麼只要X是Y的子集,則Y的計數一與X的計數不同。

若項集X是極大頻繁的,那麼只要X是頻繁的,並且X是Y的子集,那麼Y一定不是頻繁的。

這裡,“極大”很好理解,只要再多一個物品,那麼這個組合就不符合頻繁了。“閉”這個字不好理解,我們可以認為只要多一個元素,一定就會發生改變,就像臨界點一樣。

比如資料庫裡只有兩個事務,或者說我們只調查了兩個顧客的籃子。第一個是{柴,米,油,鹽,醬,醋,茶},第二個是{柴,米,油,鹽}。加入最小閾值為1,也就是說出現次數多於1次的組合就是頻繁的。那麼顯然柴,米,油,鹽,醬,醋,茶都是頻繁的,而柴,米,油,鹽的計數為2,醬,醋,茶的計數為1。這時如果把在集合{柴,米,油,鹽}中再增加一個元素,那麼新集合的計數必然變化為2,因而第二個集合是閉頻繁的,同理一也是閉頻繁的,另外若在一中再增加一個元素,那麼新集合計數就變為0了,因而一還是極大頻繁的。

以上購物籃分析只是頻繁挖掘的一種形式。事實上,形式有很多種,不同型別的形式對應了不同的計算和優化方法。我們主要研究挖掘頻繁項集的完全集,閉頻繁項集,和被約束的頻繁項集(即滿足使用者指定的一組約束的頻繁項集),我們的研究針對最基本的情況(單層、單維、布林)。

單層:表示每個物品只有一個抽象層(如冰激凌和DQ就是兩個抽象層的東西)

單維:表示每個物品只涉及一個維(如30-40年齡段的人、收入5000到8000的人的購物籃)

布林:即只考慮每個元素是否出現。