資料探勘的文章,多半是我大學資料探勘課程的筆記之類的東西,
因為覺得內容有點雜,不是很難,就是很多東西。
所以想開個文章逐一紀錄。以後找資料也方便一點這樣。
不過課程吸收的感覺對這個領域把握不高,有錯誤還請見諒就是了。
關聯規則
關聯規則是類似這樣的一個問題:
如果我的客戶買了某個商品,那麼要再推薦什麼商品呢?
想當然的,推薦的商品一定是那個「很有可能被加購的」商品。
那麼,我要怎知道客戶有可能加購什麼呢?
事實上,我們大概可以猜到一些事情。
- 與「客戶的屬性」相關
- 客戶是學生,而他剛剛買了筆,是不是折扣的話會買更多?
- 客戶是廚師的話呢?
- 與「外在的屬性」相關
- 天氣炎熱的話,買了午餐再買飲料的關聯,是不是會被加強?
- 天氣涼爽的話呢?
- 與「先前購買的商品」相關
- 買了鐵鎚,是不是會繼續選購釘子呢?
- 推薦買了鐵鎚的人麵包如何?
而資料探勘當中,有一些方法,可以去得到這些關聯規則,
對於商業行為來說,資料探勘的重點就是找到這些隱含在資料中的「商機」。
然而這三種可能,我們通常關注第三種,也就是「先前購買的商品」相關的部份。
至於為什麼呢?看下面的例子,然後想想看:
- 某個男人在賣場中買了一個麵包,所以男人的職業是?
- 早上天氣還很熱,下午開始轉涼了。
支持率與可信度
在開始進行算法之前,得先介紹一下:
支持率(Support)以及可信度(Confidence)這兩個參數。
- 支持率:出現的概率。
- 可信度:條件機率,當商品出現時,出現另一件商品的概率。
下面做一些描述:
$Support(A) = P(A)$
$Confidence(A \Rightarrow B) = P(B \mid A)$
參數的作用,從這裡可以發現一些指標:
支持率代表一條規則的重要程度。
$Confidence(A \Rightarrow B) = 99%, Support({A, B}) = 1%$
雖然買了 A 商品,幾乎也會買 B 商品,但出現這種買法相當罕見。
如果很少人會這樣買,是不是就沒有商機呢?
可信度代表一條規則的準確程度
想想看,有沒有可能出現可信度很高、但支持率很低的情況?
$Confidence(A \Rightarrow B) = P(B \mid A) = \frac{P(A \cap B)}{P(A)} = \frac{Support({A, B})}{P(A)}$
先驗算法
先驗算法(Apriori Algorithm)是資料探勘中的一種基本方法,
讓我們可以從資料中取得這些關聯規則。
實際操作的說明:
- 設定 $\text{minimum_support}$
- 計算每種商品的 $\text{support}$
- 刪去 $\text{support}$ 小於 $\text{minimum_support}$ 的商品
- 組合剩下的商品
- 重複 2 ~ 4 步,直到無法組合或滿足其他停止條件
- 計算所有的 $\text{confidence}$
公式化:
- $\alpha = \text{Minimum Support}, X_{0} = \text{All Objects}$
- $X_{p+1} = { x_{i} \cup x_{j} : support(x_{i}) > \alpha \land support(x_{j}) > \alpha , x_{i} \neq x_{j}, \forall x_{i}, x_{j} \in X_{p} }$
- $\text{Repeat step.2, until } X_{n} = \varnothing$
大致上就這個樣子,直到 $X$ 無法組合為止,而這時的最長規則,長度為 $n-1$ 單位,
很多時候,由於要人工篩選規則,所以所有出現過的 $X$ 都要考慮。