挖掘頻繁模式、關聯和相關

總述:在應用數據挖掘方法的時候,我們要找到算法的約束條件和化簡條件,縮減算法的時間複雜度和空間複雜度。頻繁模式就是對算法中結果進行描述,甚至做出進一步的刻畫和限定,引導數據挖掘向結果進行靠近。

 

  1. 頻繁模式是什麼
  2. 有效的可伸縮的頻繁項集挖掘方法有哪些
  3. 如果數據之間存在潛在的關聯關係,如何去挖掘
  4. 怎麼從關聯挖掘的結果進行相關分析
  5. 實際情況下基於約束的關聯挖掘是怎麼回事

 

1.頻繁模式是什麼

答:頻繁模式是頻繁地出現在數據集中的模式。頻繁模式反應了一些關聯規則。當規則的支持度和置信度是規則興趣的兩種度量,分別反應了所發現規則的有用性和確定性。如果規則同時滿足最小支持度閾值和最小置信度閾值,則此關聯規則是有趣的。

對頻繁模式用數據庫的基本知識解讀:我們假設有一張表,存在多個字段,我們假定存在字段A和B是這張表中的字段。這張表中存在了大量的數據,記做數據集T。T中每一條記錄都有唯一的標識符TID。當數據T中存在的數據計算比例的時候發現,A某個取值和B的某個取值存在一定的關聯關係,我們就稱A和B在數據集T上存在關聯成立,具有一個關聯支持度s,s是T中A某個取值同時B取某個值同在一條記錄的記錄數與T的總記錄數比值。在數據集T上,A和B關聯關係的置信度c是A某個取值同時B取某個值同在一條記錄的記錄數與A某個取值的比值。

仔細分析就會發現,關聯關係最強的時候可能成爲字段的某種函數依賴關係。實際上這種關聯關係是基於數據事實進行分析的,只有當關聯支持度和置信度超過最小關聯支持度閾值和最小置信度閾值的時候纔是強規則。根據頻繁模式的定義可以得出,在具體挖掘過程中先計算關聯支持度,再計算置信度。

 

2.有效的可伸縮的頻繁項集挖掘方法有哪些

答:第一種算法是利用Apriori性質:頻繁項集的所有非空子集也必須是頻繁的。這種算法除了利用頻繁模式的定義之外,還根據這個性質採用了遞歸的方法。整個算法的核心思想是:第一步,先從頻繁模式的定義觸發,尋找兩個字段之間存在關聯的取值,然後通過增加一個字段,考察新增加字段取值與已有頻繁模式集合之間的關係;第二步,利用Apriori性質,如果新增字段的某些取值和已有頻繁模式存在足夠關聯度則保存,否則利用剪枝原則,排除這個新增字段取值到頻繁模式集合之外。從算法的具體思想上來看,算法的時間複雜度波動範圍是非常大,從1到n的n次方。這種情況下可以通過選取合理的計算順序降低時間複雜度。

爲了提高Apriori算法效率,人們有提出了基於散列技術的改進、事物壓縮、劃分、抽樣、動態項集計數等改進算法。基於散列技術是從利用散列技術將多個二維關聯關係分組,每個同分組時設置默認最小關聯度閾值,計算桶內每個關聯,只要關聯度值超過默認最小關聯度,則更新桶計數。統計最後計算結果,只要桶的閾值沒有變換的全部排除掉,然後在對超過默認閾值的桶進行計算分析。事物壓縮主要是根據不包含任何頻繁k項集的事務也不可能包含在任何頻繁k+1項集中。這樣,對其中非頻繁項一邊計算一邊刪除可以縮減以後的計算量,實際上還是要計算一次作爲檢驗條件。劃分是將候選項集進行分組,先對每個分組計算滿足最小閾值的關聯,然後再尋找分組間的關聯,隨着關聯項的增多,可以運用組合分組中組合的方式,這種方法也縮減了計算量。抽樣是一種犧牲精確度換取效率的算法,算法的核心思想是先從整體數據集T中隨機抽樣得出樣本S,在S中使用一個比最小支持度閾值小的閾值檢測S中的頻繁項集,然後對S的頻繁項集中每一個項計算在T中出現的頻率,然後根據S中頻繁項集最小支持度閾值和D中出現的頻率估算出結果。動態項集計數計數將數據庫劃分爲用開始點標記的塊,在這種變形中,可以在任何開始點添加新的候選集,可以動態的評估已計數的所有項集支持度。在這種技術下,一旦一個項集的所有子集已經確定爲頻繁的,則添加它爲新的候選項。

第二種方法是頻繁模式增長,簡稱FP增長。方法採用分治策略,先提供頻繁項的數據庫壓縮到一顆頻繁模式樹上,但仍保留項集關聯關係;其次將壓縮後的數據庫劃分成一組條件數據庫,每個關聯一個頻繁項或模式段,並分別挖掘每個條件數據庫。 具體做法:1、先掃描事務數據庫T一次,收集頻繁項集的集合F和它們的支持度計數,對F按支持度計數降序排列,轉化爲頻繁項列表L;2、創建FP樹的根節點,以‘null’爲標記,然後將L中的項逐次向樹上添加。當設Li是L中的第i項,只要Li中的頻繁項加入到樹上時與父節點產生頻繁模式,則計Li作爲葉子插入到當前節點位置的計數加1.當Li中項全部檢測完畢,計數超過最小關聯度閾值則保存,否則去掉。因爲這種算法考慮到頻繁項集中計數是不統一的,將高計數的頻繁項優先計算,低計數的頻繁項後計算,極大的加快了計算速度,效率比第一種方法快一個數量級。

第三種方法是使用垂直數據格式挖掘頻繁項集。 前面兩種方法的數據格式都是水平數據格式,就是以TID作爲首要標識項的表示方法。如果轉換數據表示方法,以事務的項集做爲首要標識項,這種稱爲垂直數據格式。這種數據格式下計算項集的頻繁項只需要計算事務項的交即可。這種方法的時間複雜度和空間複雜度很大,主要集中在數據從水平數據格式轉換爲垂直數據格式上。人們對這種方法進行了改進,採用差集的技術,僅記錄k+1項集的TID集與一個對應的k項集的TID集之差。在數據集中包含很多稠密和長模式時,該技術可以顯著減低頻繁項集垂直格式挖掘的總開銷。

第四種方法是挖掘閉頻繁項集,這種方法可以降低開銷。在挖掘過程中直接搜索閉頻繁項集,一旦識別到閉頻繁項集就儘快對搜索空間進行剪枝。剪枝策略:1、如果保單頻繁項集X的每個事務都包含項集Y,但不包含Y的任何真超集,則X∪Y形成一個閉頻繁項集,並且不必再搜索包含X但不包含Y的任何項集;2、如果一個頻繁項集X是一個已經發現的閉頻繁項集Y的真子集,並且支持度X和支持度Y相等,則X和X在集合枚舉樹中的所有後代都不可能是閉頻繁項集,因此可以剪枝處理;3、在深度優先挖掘閉項集時,每一層都有一個與頭表和投影數據庫相關聯的前綴項集X。如果一個局部頻繁項p在不同層的多個頭表中都有相同的支持度,則可以將p安全地從較高層頭表中剪掉。

從以上數據挖掘的方法來看,數據挖掘的算法按照時間複雜度和空間複雜度來說都是很高的,在針對具體問題上的處理時都要檢查時間複雜度和空間複雜度,儘可能估算算法的執行時間和需要的存儲空間。

 

3.如果數據之間存在潛在的關聯關係,如何去挖掘

答:一般情況下越靠近底層的原始數據,關聯關係越微弱,越是靠近高層,關聯關係越明顯。爲了挖掘這種潛在關聯關係,必須對挖掘規則做一些特別的設置:1、在較低層使用遞減的最小支持度;2、使用基於項或基於分組的最小支持度。

第一種挖掘方法是使用預定義的概念分層對量化屬性離散化,這種離散化必須在挖掘之前進行。因爲這種離散化是靜態和預確定的,所以這種方法也稱爲使用量化屬性的靜態離散化挖掘多維關聯規則。

第二種方法是根據數據的分佈將量化屬性離散化或聚類到箱。因爲這種離散化是動態的滿足某種挖掘標準,也稱這種方法爲動態量化關聯規則。

 

4.怎麼從關聯挖掘的結果進行相關分析

答:大部分關聯規則挖掘算法都使用支持度——置信度框架。但是這無法保證挖掘出來的結果一定是有趣的規則,特別是使用低支持度閾值挖掘或挖掘常模式時,情況更加糟糕,這一直是關聯規則挖掘成功應用的主要瓶頸之一。由於規則有趣評估可以主觀的或客觀的,當評估是主觀的,那麼規則有趣可能因用戶不同而不同。即便是滿足關聯度和置信度的關聯規則,也不一定就是有效的。爲了解決這種情況,我們需要使用統計學中的聯合分佈事件的定義來判定關聯規則中的項是否是獨立分佈事件,如果不是就存在關聯關係。

在分析關聯挖掘的結果時,我們需要使用統計學的知識來檢查結果是否是有效的。

 

5.實際情況下基於約束的關聯挖掘是怎麼回事

答:因爲挖掘出來的關聯模式是否有趣很大一部分是由用戶決定的,所以用戶說明他們的需要或者期望可以作爲限制搜索空間的約束條件。這種策略稱爲基於約束的挖掘,這些約束的類型有:知識類型約束、數據約束、維/層約束、興趣度約束、規則約束。

元規則是主要來自於經驗豐富的人員的經驗,這些規則可以快速推進數據挖掘的處理。例如XX年齡段XX地區的某種職業的男性在有某種數據特徵的時候,也呈現出另外一種數據特徵。因爲這是從規則層面上體現的,可以最大幅度的加速挖掘。

其他比較通用的規則約束還有反單調性、單調性、簡潔性、可轉換變的等約束,這些約束都是有助於進行挖掘處理的。以反單調性爲例,月消費超過10000元的人呈現與什麼樣的消費特徵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章