2017年3月13日 星期一

使用Perl的Apriori Algorithm module做購物籃分析(Market Basket analysis)

【常見應用】
  1. 如果一個消費者買了產品A,那有多大的機會購買產品B?
  2. 如果買了A也買了B,那麼他還會購買什麼產品?
  3. 針對X產品做推廣,用以增進Y產品的銷售。


【原理】
關聯規則分析(Association)有很多種演算法,目的就是在眾多交易中找出品項與品項之間的關係,也被稱為購物籃分析 (Market Basket analysis)。

其中,最常用的就是 Apriori Algorithm (Apriori 演算法),透過支持度(support)、信賴度(confidence)、增益值(lift),作為找尋行銷組合的標準。

詳細內容網路上都有資源,我們就直接進入正題,各個程式語言都有相關的module可以用,舉凡 R、Python、PHP都有,接下來以 Perl 的 Data::Mining::Apriori module做示範。



【資料準備】
  • 將「產品ID與描述」寫到 hash table reference :
1,產品A
2,產品B
...

Data-Mining-Apriori-keyItemsDescription


  • 給予「交易資料」,每一行代表一個交易,都要至少有兩個品項:

1,2,3
2,3
1,3
...



【實作】
將資料整理後,接下來是配合需求調整參數。

Data-Mining-Apriori-support-and-confidence-and-lift


因為如果只用default值,會跑出太多組相關性不高的組合。


【結果】
原則上我會以高支持度、高增益值( > 1) 來做篩選,最後就會剩下這八組較為相關的組合,提供活動或推薦系統使用。

Data-Mining-Apriori-results-and-rules

Rule R1 顯示產品A與產品C有高度相關:

Data-Mining-Apriori-rules-and-items



【補充說明】
增益值 > 1,表示X與Y呈現正相關,規則才具有實用性。
增益值 = 1,表示X與Y呈現不相關,結果與亂數取得方式相似。
增益值 < 1,表示X與Y呈現負相關,比亂數取得之結果更差。



【小結】
不只是購物籃,只要能夠減少使用者選擇路徑,就能增加銷售與轉換,一樣也是可以用於遊戲中的「點數分配」、「裝備推薦」等。



以上介紹到這裡,還請各位大神多多給予指教。

2017年2月28日 星期二

Pokemon GO 二月份的兩次改版,再次拉抬營收

【Pokemon GO 根本沒人玩了,還改版幹嘛?】
我喜歡這樣下標,才更顯得分享有趣。
無論是哪種服務,都會隨時間淘汰掉不適合的TA (目標客群)。

附上兩張Pokemon GO 在台灣的「Android」與「iPhone」營收排名變化。

Pokemon-GO-Grossing-Rank-Android

Pokemon-GO-Grossing-Rank-iPhone


可以看到二月的兩次改版,都造成明顯的營收成長:

【情人節加倍活動】 
粉紅寶可夢出沒機率增加、糖果兩倍、櫻花變六小時

【二代寶可夢登場】
新寶可夢、新進化道具、新果實

---

兩次改版都加重了用戶課金需求:
1. 加速寶貝球的消耗 (粉紅、新寶可夢)
2. 迫使玩家進行背包擴充 (進化道具、果實種類變多)
3. 迫使玩家進行寶可夢擴充 (蒐集的寶可夢變多)
雖不比遊戲剛上時的成績亮眼,不過這個成長還是看得到的。

---

不論現實或網路上,不免會聽到流失用戶唱衰你的服務,Pokemon GO就是近期最貼近我們的一個代表例子。

「數字才是真的」。跟風而流失的用戶,並不是遊戲的TA,如果把這些發言就當作是全部的消費者,就更容易在關鍵時刻做出錯誤的決定。

拉回生活場景,當面臨做決策時(產品開發、或生涯抉擇),試著先停下來思考,有沒有做過TA研究,還是憑少數人的回饋做決定。