关联规则挖掘(一)
關聯規則挖掘是一種常用的數據挖掘手段,本文作為關聯規則挖掘的第一篇文章,將主要介紹關聯規則挖掘的來歷與目的,以購物籃分析的一個簡單例子熟悉基本概念,以及從多維度對關聯規則挖掘進行分類。
一、概述
相信大家都聽過啤酒與尿布的故事,這就是一個最典型的關聯規則挖掘的例子:購物籃分析。通過發現顧客放入其購物籃中不同商品之間的聯系,分析顧客的購買習慣,進而了解哪些商品頻繁地被顧客同時購買,這種關聯規則的發現可以幫助零售商制定營銷策略。例如,在同一次去超市,如果顧客購買牛奶,他也購買面包的可能性有多大?通過幫助零售商有選擇地經銷和安排貨架,這種信息可以引導銷售。例如,將牛奶和面包盡可能放近一些,可以進一步刺激一次去商店同時購買這些商品;亦或者將牛奶和雞蛋放在商店的兩端,可能誘發買這些商品的顧客一路挑選其它商品。
關聯規則挖掘的目的是發現大量數據中項集之間有趣的關聯或相關聯系。隨著大量數據不停地收集和存儲,許多業界人士對于從他們的數據庫中挖掘關聯規則越來越感興趣。從大量商務事務記錄中發現有趣的關聯關系,可以幫助許多商務決策的制定,如分類設計、交叉購物和賤賣分析。
二、基本概念
以一個簡單的例子來理解基本概念:
t1: 牛肉、雞肉、牛奶 t2: 牛肉、奶酪 t3: 奶酪、靴子 t4: 牛肉、雞肉、奶酪 t5: 牛肉、雞肉、衣服、奶酪、牛奶 t6: 雞肉、衣服、牛奶 t7: 雞肉、牛奶、衣服I={i1,i2,...,im}是項的集合,即I={牛肉,雞肉,牛奶,奶酪,靴子,衣服}。
任務相關的數據D是數據庫事務的集合,其中每個事務T是項的集合,使得 T?I,即D={t1,t2,t3,t,4,t5,t6,t7}。
A 是一個項集,如A={牛肉,雞肉},事務T包含A當且僅當 A ? T,如此時事務t1包含項集A。
關聯規則是形如 A?B 的蘊涵式,其中 A?I,B?I,并且 A∩B=?。規則 A?B 在事務集D中成立,具有支持度s,其中s是D中事務包含 A∪B 的百分比,它是概率 P(A∪B) 。規則 A?B 在事務集D中具有置信度c,c是D中包含A的事務同時也包含B的百分比,它是條件概率 P(B|A)。如:關聯規則牛肉?雞肉的支持度為3/7,置信度為3/4。
支持度:support(A?B)=P(A∪B),用百分數表示。
置信度:confidence(A?B)=P(B|A),用百分數表示。
強規則:同時滿足最小支持度閾值和最小置信度閾值的規則。
項集:項的集合。
k-項集:包含 k 個項的項集。
項集的頻率:包含項集的事務數。
頻繁項集:項集滿足最小支持度。頻繁 k-項集的集合通常記作 Lk 。
提升度lift:
值得注意的是:當右手邊的項集的支持度已經很顯著時,即使規則的confidence較高,這條規則也是無效的。
舉個例子:
在所分析的10000個事務中,6000個事務包含計算機游戲,7500個包含游戲機游戲,4000個事務同時包含兩者。
關聯規則(計算機游戲,游戲機游戲) 支持度為0.4,看似很高,但其實這個關聯規則是一個誤導。
在用戶購買了計算機游戲后有4000/6000=0.667的概率的去購買游戲機游戲,而在沒有任何前提條件時,用戶反而有7500/10000=0.75的概率去購買游戲機游戲,也就是說設置了購買計算機游戲這樣的條件反而會降低用戶去購買游戲機游戲的概率,所以計算機游戲和游戲機游戲是相斥的。
提升度的意義在于度量項集{X}和項集{Y}的獨立性,如果提升度=1,說明兩個條件沒有任何關聯;如果<1,說明A條件(或者說A事件的發生)與B事件是相斥的,一般在數據挖掘中當提升度大于3時,我們才承認挖掘出的關聯規則是有價值的。
關聯規則的挖掘是一個兩步的過程:
(1)找出所有頻繁項集:根據定義,這些項集出現的頻繁性至少和預定義的最小支持計數一樣。
(2)由頻繁項集產生強關聯規則:根據定義,這些規則必須滿足最小支持度和最小置信度。
這兩步中,第二步較容易,挖掘關聯規則的總體性能由第一步決定。
三、關聯規則的分類
購物籃分析只是關聯規則挖掘的一種形式。事實上,有許多種關聯規則。根據下面的標準,關聯規則有多種分類方法:
1.根據規則中所處理的值類型:
- 如果規則考慮的關聯是項的在與不在,則它是布爾關聯規則。如:buy(X,牛肉)?buy(X,雞肉) 。
- 如果規則描述的是量化的項或屬性之間的關聯,則它是量化關聯規則。如:age(X,"30…39")∪income(X,"42K…48K")?buys(X,high_resolution_TV),其中,X 是代表顧客的變量。
2.根據規則中涉及的數據維:
- 如果關聯規則中的項或屬性每個只涉及一個維,則它是單維關聯規則。如:buy(X,牛肉)?buy(X,雞肉)。
- 如果規則涉及兩個或多個維,則它是多維關聯規則。如:age(X,"30…39")∪income(X,"42K…48K")?buys(X,high_resolution_TV),其中,X 是代表顧客的變量。
3.根據規則集所涉及的抽象層:
- 如果關聯規則在不同的抽象層發現,則它是多層關聯規則。例如,假定挖掘的關聯規則集包含下面規則: age(X,”30…39”)?buys(X,”laptopcomputer”) age(X,”30…39”)?buys(X,”computer”) 在上述規則中,購買的商品涉及不同的抽象層,即computer在比laptop computer高的抽象層。
- 如果關聯規不涉及不同的抽象層,則它是單層關聯規則。
4.根據關聯挖掘的各種擴充:
- 可以擴充到相關分析,進而可以識別項是否相關。
- 可以擴充到挖掘最大模式(即最大的頻繁模式)和頻繁閉項集。最大模式是頻繁模式 p,使得 p的任何真超模式 都不是頻繁的;頻繁閉項集是一個頻繁的、閉的項集,其中項集 c 是閉的,如果不存在 c 的真超集 c’,使得每個包含 c 的事務也包含 c’。使用最大模式和頻繁閉項集可以顯著地壓縮挖掘所產生的頻繁項集數。
參考資料:
【1】數據挖掘概念與技術
【2】淺談數據挖掘中的關聯規則挖掘
總結
- 上一篇: Windows 10 Enterpris
- 下一篇: Excel基础—文件菜单之设置选项