挖掘頻繁模式、關聯和相關性:基本概念和方法
頻繁模式(frequent pattern)是頻繁地出現在數據集中的模式(如項集、子序列或子結構)。
例如,頻繁地同時出現在交易數據集中的商品(如牛奶和面包)的集合是頻繁項集。
一個子序列,如首先購買PC,然后是數碼相機,再后是內存卡,如果它頻繁地出現在購物歷史數據庫中,則稱它為一個(頻繁地)序列模式。
一個子結構可能涉及不同的結構形式,如子圖、子樹或子格,它可能與項集或子序列結合在一起。如果一個子結構頻繁地出現,則稱它為(頻繁的)結構模式。
對於挖掘數據之間的關聯、相關性和許多其他有趣的聯系,發現這種頻繁模式起着至關重要的作用。此外,它對數據分類、聚類和其他數據挖掘任務也有幫助。
1.基本概念
頻繁模式挖掘搜索給定數據集中反復出現的聯系。
1.1購物籃分析
頻繁項集挖掘的一個典型例子是購物籃分析。該過程通過發現顧客購買過商品之間的聯系,分析顧客的購物習慣。這種關聯可以幫助零售商了解哪些商品頻繁地被顧客同時購買,從而幫助他們制定更好的營銷策略。
分析結果可以幫助設計不同的商店布局。
一種策略是:經常同時購買的商品可以擺放近一些,以便進一步刺激這些商品同時銷售。
另一種策略:把同時購買的商品擺放在商店兩端,可能誘發買這些商品的顧客一路挑選其他商品。
購物籃分析也可以幫助零售商規划什么商品降價出售。如果顧客趨向於同時購買計算機和打印機,則打印機的降價出售可能既促使購買打印機,又促使購買計算機。
每種商品有一個布爾變量,表示該商品是否出現。每個購物籃可以使用一個布爾向量表示。可以分析布爾向量,得到反映商品頻繁關聯或同事購買的購買模式。這些模式可以用關聯規則(association rule)的形式表示。
購買計算機也趨向於購買殺毒軟件,可以使用以下關聯規則表示:
Computer => antivirus_software[support = 2%; confidence = 60%]
關聯規則的支持度為2%,意味着所分析的所有事務的2%顯示計算機和殺毒軟件被同事購買。
置信度60%意味着購買計算機的顧客60%也購買了殺毒軟件
規則的支持度(support)和置信度(confidence)是規則興趣度的兩種度量。它們分別反映所發現規則的有用性和確定性。如果關聯規則滿足最小支持度閾值和最小置信度閾值。這些閾值可以由用戶或領域專家設定。
1.2頻繁項集、閉項集和關聯規則
設I = {I1, I2, I3, ... , Im}是項的集合。設任務相關的數據D是數據庫事務的集合,其中每個事務T是一個非空項集,使得 T ⊆ I。每個事務都有一個標識符,稱為TID。設A是一個項集,事務T包含A,當且僅當A ⊆ T。關聯規則是形如 A→B的蘊含式,其中A⊂I,B⊂I,A不為空,B不為空,並且A∩B不為空。
規則A→B在事務集D中成立,具有支持度s,其中s是D中事務A∪B(即集合A和B的並或A和B二者)的百分比。它是概率P(A∪B)。
Support(A→B) = P(A∪B) = P(A&B)
規則A→B在事務集D中具有置信度c,其中c是D中包含A的事務同時也包含B的事務的百分比。這是條件概率P(B|A)。
Confidence(A→B) = P(B|A) = P(A&B)/P(A)
同時滿足最小支持度閾值(min_sup)和最小置信度閾值(min_conf)的規則稱為強規則。
項的集合稱為項集。包含k個項的項集稱為k項集。集合{computer, antivirus_soft-ware}是一個2項集。項集的出現頻度是包含項集的事務數,簡稱為項集的頻度、支持度計數或計數。
Support(A→B) 定義的項集支持度有時稱為相對支持度,而出現頻度稱為絕對支持度。如果項集I的相對支持度滿足預定義的最小支持度閾值(即I的絕對支持度滿足對應的最小支持度計數閾值),則I是頻繁項集(frequent itemset)。
一般而言,關聯規則的挖掘是一個兩步的過程:
(1)找出所有的頻繁項集:根據定義,這些項集的每一個頻繁出現的次數至少與預定義的最小支持計數(min_sup)一樣。
(2)由頻繁項集產生強關聯規則:根據定義,這些規則必須滿足最小支持度和最小置信度。