top of page

機器學習與Python行銷數據分析

​-校內作品

大四時,希望能透過多方面學習,且在目前數據驅動行銷的趨勢下,加強自己觀察數據並加以分析的能力,選修了Python行銷數據分析相關的課程,從資料處理、資料視覺化、爬蟲到資料分析、建模等,在經過了一年的學習,對於如何解讀數據及Python有了基礎的認識。

投資圖表

一、使用RFM模型分析,並將顧客分群進行行銷洞察給予行銷方案 

       (此將省略前期的資料前置處理,著重在行銷洞察上)

使用Opendata - OnlineRetail.csv (某線上零售商八個月內顧客的購買紀錄)

將原始資料集進行資料前置處理後,儲存的新資料集為-OR_Processed.csv,包含InvoiceNo、InvoiceDate、CustomerID、Total_Amount、InvMonth,共約34萬筆資料。

螢幕擷取畫面 2021-09-14 012839.jpg

​將新資料集(OR_Processed.csv) 應用 RFM 模型做顧客區隔:

R - 計算最近購買日期(Recency) - 客戶代碼+購買日期 [R_Flag]

F - 計算購買頻率(Frequency) - 客戶代碼 + 發票號碼 [F_Flag]

M - 計算購買金額(Monetary) -  客戶代碼 + 購買金額 [M_Flag]

將RFM合併儲存另一個資料集(OnlineRetail_RFM.csv) 將進行分群,並給予行銷洞察。

螢幕擷取畫面 2021-09-14 020107.jpg
螢幕擷取畫面 2021-09-14 020938.jpg

接下來將使用K-means演算法對資料進行分群 

 

[Code: 8~27行]

​載入資料集後,先使用Elbow法,決定要分為幾群 :

由下圖Elbow graph來看,分成3、4、5群皆可行,

但以不超過5群為原則,​此次練習分為5群。

Figure_1.png
螢幕擷取畫面 2021-09-14 021052.jpg

​[Code: 30~56行]

使用K-means將客戶分為5群後,匯出RFM圖​,並以三角形標出各群重心點 :

Figure_2.png

行銷洞察與可行的行動方案 :

共分為5群Cluster 0~4 ,各群重心分別約為 :
Cluster 0:[5,2,4]、Cluster 1:[2,2,2]、Cluster 2:[5,2,3]、Cluster 3:[5,2,5]、Cluster 4:[3,2,3]

螢幕擷取畫面 2021-09-14 024116.jpg

依照各客群重心的RFM數值,區分客群價值高低 :    

Cluster 3 > Cluster 0 > Cluster 2 > Cluster 4 > Cluster 1

以下針對不同客群,制定不同行銷方案 :
    
- Cluster 3 : 高價值客群,有較高活躍度(R)及較高購買金額(M),屬於新貴客、重點發展客戶。
- Cluster 0 : 中高價值客群,有高活耀度(R)及高購買金額(M),屬於新貴客、重點發展客戶。

    上面兩個客群(3&0),可為商家帶來最多的價值,是最近一次消費時間較近、消費金額高,
    但頻率不高、忠誠度不高的潛力客戶,所以企業必須嚴格檢視每一次服務體驗,是否讓客戶非常滿意,
    或是可以定期寄送專屬獨家優惠,提升此客群消費的頻率,及保持與他們的聯繫。

 


- Cluster 2 : 中價值客群,有高活躍度(R)並有適度的購買金額(M),屬於新客,一般發展客戶。
    此客群距離上次消費時間近(R),但購買頻率(F)及消費金額(M)都偏低,所以要提升消費頻率及金額,
    可以推出一些符合此客群的優惠組合(例如:買第二件6折 or 將客戶常會一起購買的產品放在旁邊
    (or優惠組合)...),並定期更換組合。

 


- Cluster 4 : 中低價值客群,有適度的活耀度(R)及購買金額(M),屬於普通客,一般發展客戶。
- Cluster 1 : 低價值客群,活耀度(R)及購買頻率(F)都偏低,屬於一次性消費客人,一般挽留客戶。

    上面兩個客群(4&1),對於RFM分數都較低的客群,我認為要調整在此客群上投入的行銷預算,若對此
    客群投放廣告及寄送優惠郵件後,過了一段時間,分數還是沒有提升的話,就可以考慮將此客群從行
    銷名單中刪除,或減少行銷預算。

總結 :


    我覺得此商家的顧客的購物頻率(F)都偏低,顧客生命週期短,可能此商家賣的產品大多是屬於3C產品
    或耐用品
,所以這個商家會有較多新顧客,因此建議寄送歡迎信的優惠,或是提供產品訊息、新手適用
    指南,讓他們更瞭解公司,並同時要加強在會員制度的改善、提供優惠的頻率及產品推陳出新的速度,
    強化消費者對公司的忠誠度。另外可以多銷售一些或加強行銷在消耗週期短,購買頻率很高的產品,藉
    此提升消費者光顧的意願。

二、機器學習 - 建立分類分析模型,找出重要的預測因⼦,供未來的⾏銷活動參考 

載入套件&資料集、資料前置處理

01

資料拆分、訓練&測試資料、建模、預測&評估模型

02

模型優化 (特徵選取 & 超參數調整)

03

04

行銷洞察與

可行的行動

方案 

使用Opendata - Bankdata.csv (某銀行行銷的歷史資料集)

​資料集共有17個Column :

螢幕擷取畫面 2021-09-29 153000.jpg

1.資料前置處理

1.jpg
2.jpg
  • 載入必要套件&資料集
     

  • 載入資料集後,檢查是否有遺漏值及重複值,接著開始處理類別資料,使用One-Hot Encoding (.get_dummies),一次將需要處理的資料完成,並使用drop_first=True,去掉每個類別中的第一項,避免過度凝合。
     

  • 準備label資料(y-客戶是否決定要定期存款)。
     

  • 檢查前7項(未進行類別處理的)特徵相關性。

11.png

#無發現高共線性

2、資料拆分、訓練 & 測試資料、建模、預測、評估模型

  • 將資料以7:3的比例拆分為train/test,
    拆分資料後,先使用全部的特徵
    並選用RandomForest分類演算法訓練模型,評估模型效能,預測準確度

# 改用test_size=0.3,準確度較高
# 使用全部特徵+RandomForest演算法        的預測準確度:90.61%

3.jpg

3、模型優化 (特徵選取 & 超參數調整)

  • 評估特徵重要性值,選出前15名特徵,降低模型複雜度,再次建模比較,並評估模型效能(準確度)

12.png

# 挑出特徵重要性前15名+RandomForest的       預測準確度:90.1%

​# 準確度雖未提升,但將特徵範圍縮小,降低     複雜度,接著試以調整超參數提升準確度

4.jpg
  • 超參數調整,選出最佳參數組合後,調整演算法的參數,再次建模比較,並評估模型效能(準確度)

# 使用特徵重要性值前15名 + 新參數Random      Forest 演算法的預測準確度:90.43%

​# 準確度提升約 0.33%

5.jpg
  • 繪出混淆矩陣,評估模型效能
    ​(yes=1、no=0)

7.jpg
13.png
  • precision = 在預測(predictions)為正向(yes)的預測準確率 :
    741/741+437=0.63

     

  • recall = 在實際(true)為正向(yes)的預測準確率 :
    741/741+818=0.48

     

  • f1-score = 「precision」和「recall」的調和平均數 :
    2*0.63*0.48/0.63+0.48=0.55

行銷洞察與可行的行動方案 :

- 建立模型前,先觀察資料:

14.png

1、客戶是否決定要定期存款(y)的比例 :
可以看到願意定期存款的客戶比例較少,所以如果沒有掌握好可能會定期存款客戶的名單,就對所有客戶進行相同的行銷方案的話,會造成大量的行銷預算的浪費。

2、「前一次行銷活動的結果(poutcome)」與「客戶是否決定要定期存款(y)」的比較 :

15.png
  • 從左邊的圖可以觀察到,在對前一次行銷活動成功的客戶中,有64.7%的人是有決定要定期存款的;右邊的圖可以觀察到,在對前一次行銷活動失敗的客戶中,只有12.6%的人是有決定要定期存款的。
     

  • 由此圖可以知道「前一次行銷活動的結果(poutcome)」這個特徵,是在判斷未來的行銷活動時,一項很重要的特徵。

- 從建立的預測模型,觀察資料:

​1、使用評估特徵重要性值,選出前15名的特徵:

4.jpg

從前15名的特徵可以觀察到,上一次聯繫時所花費的時間、客戶帳戶的結餘、年紀、前一次行銷活動的結果、最後一次聯繫客戶之後經過的天數等…,是影響模型很重要的因素。

 

  • 在推廣行銷活動前,可以先改善與公司有關的因素,例如:應先檢視公司與客戶是否有經常保持聯繫,維持客戶忠誠度,並在每一次的聯絡是否有給客戶留下良好的印象。
     

  • 前一次的行銷對於客戶留下的印象/結果也很重要,公司在每一次的行銷活動前,都要做好完善的規劃,確保有將活動推給正確的客群。
     

  • 參考預測模型的因素,在每一次不同性質的行銷活動,應適當的改善模型,才能做到精準行銷,縮小每一次行銷的範圍,以最適當的預算達到最大的效益。

bottom of page