數據科學與機器學習

自動化特徵工程預測零售消費

2026-08-20

在這個 Notebook 中,我們會使用 Featuretools,針對一組網上零售交易資料建立自動化特徵工程(Automated Feature Engineering)流程。 資料來自 UCI Machine Learning Repository,內容是一系列附有時間紀錄的零售購買交易。由於原始資料並沒有預先定義的標籤(Label),因此我們首先需要自行建立一個預測問題。 在定義問題後,我們會利用 Featuretools 自動產生特徵,再使用這些特徵訓練機器學習模型,以預測客戶未來的消費行為。

Notebook 流程

  1. 載入、檢查及清理資料
  2. 建立預測問題
    • 建立預測標籤(Labels)
    • 建立截止時間(Cutoff Times)
  3. 建立 Featuretools EntitySet
  4. 將原始資料正規化為多個關聯資料表
  5. 使用 Deep Feature Synthesis 自動建立特徵
  6. 使用特徵訓練機器學習模型
  7. 與基準模型(Baseline)比較
  8. 調整 Deep Feature Synthesis
  9. 評估 Precision、Recall、F1 Score 及 ROC AUC

核心預測問題會翻成:

預測某位客戶在未來一個月內,消費金額是否會超過 500 美元。

而例如:

Whenever we have time-series data, we need to be extra careful to not "leak labels" or use information from the future to predict a past event.

會翻成:

處理時間序列資料時,必須特別注意避免 資料洩漏(Data Leakage),亦即不能使用「未來才會知道的資料」來預測較早時間點的結果。

Featuretools 的 cutoff_time 就會用來確保:

預測 2011 年 6 月
        ↓
只可以使用 6 月之前的交易資料
        ↓
不能偷看 6 月之後的資料

而最後結論會整理成:

結論

這個 Notebook 展示了 Featuretools 在零售消費預測上的幾個主要優點:

  1. 自動建立大量有意義的特徵
    Featuretools 可以從 Customers、Orders、Products、Purchases 等關聯資料中,自動建立適合機器學習使用的特徵。
  2. 避免時間序列中的資料洩漏
    透過 Cutoff Time,所有特徵都只使用預測時間點之前可以取得的資料。
  3. 自動化特徵工程可以改善模型效果
    Featuretools 配合 Random Forest 的模型表現優於單純使用「上個月消費預測下個月消費」的 Baseline。
  4. 模型結果仍然具有可解釋性
    最重要的特徵主要包括客戶過往總消費、購買次數及購買數量,與實際商業邏輯一致。
  5. Precision / Recall 的平衡取決於商業目標
    如果目標是盡量找到潛在高消費客戶,可以提高 Recall;如果推廣成本較高,則可以偏重 Precision。

 

PIXEL LABPYTHON NOTEBOOK
PYTHONmanualEDITABLE
Setup
In [ ]:
DATA SOURCEdf
Load in Raw Data
FORMATXLSX
VARIABLEdf
SHEET0
SOURCEhttps://docs.google.com/spreadsheets/d/e/2PACX-1vQdGK16sS3vjJEm4Pn_QoVwdpQ6SeGtVjuZHLu0MTHZ4i-NSc2lQhQqZfvilnlAMA/pub?output=xlsx
PYTHONmanualEDITABLE
Preview Data
In [ ]:
PYTHONmanualEDITABLE
data.shape
In [ ]: