資料菜鳥的挖掘之旅(二)關聯規則之Apriori演算法
一、介紹
假如,我們手中有一個顧客在商場中購買物品交易記錄的資料庫。我們如何通過這個資料庫,找出一些規則,再通過一些方法,讓這些規則被顧客接受,促使他們在商場中購買更多的商品?、
就像很早以前所說的——啤酒與尿布
二、幾個基本概念
2.1項集(Items)
在商場中購物,我們看到的所有商品。例如:Bread, Milk, Chocolate, Butter… 它們組成的集合就稱為項集,我們可以用符號
2.2事務(Transaction)
事務其實就是項集的一個非空子集。形象地理解就是,顧客在商場購買完商品之後的小票。每一張小票對應著一個Transaction,通常我們用符號
2.3資料庫(Databases)
一個數據庫包含著所有事務,用符號
2.4關聯規則(association rule)
根據公式,我們可以知道,關聯規則,就是找到一種關係。
用商場中的例子來說就是買了牛奶、麵包的人,會去買黃油、果醬。這就是關聯規則。
2.5支援度
其實就是一個頻率,假如,我們手上同時有8個客戶的購物小票,其中有3個客戶購買了Butter。那麼,我們稱
另外,通常對於關聯規則的的支援度,我們如下定義:
2.6置信度
置信度可以看做條件概率。也就是在同時購買
2.7頻繁項集和強規則
我們先給定一個支援度和置信度的最小閾值:
- Minimum support
θ - Minimum confidence
ϕ
一個頻繁項集就是一個支援度大於
一個強規則就是頻繁項集中置信度大於
最後,關於關聯規則的問題,用一句形容就是:
三、Apriori演算法
Apriori演算法的核心思想就是2句話:
A subset of a frequent itemset must be frequent.
任何一個頻繁項的非空子集必須是頻繁的。
{Milk, Bread, Coke} is frequent⇒ {Milk, Coke} is frequentThe supersets of any infrequent itemset cannot be frequent.
任何一個非頻繁項的超集(父類)不可能使頻繁的。
{Battery} is infrequent {Milk, Battery} is infrequent
偽演算法:
例子: