聊天視窗

數據驅動決策:實務分析師的數據科學指南 - 第 5 章

第六章:統計建模與機器學習 – 從特徵到預測模型

發布於 2026-03-02 19:59

# 第六章:統計建模與機器學習 – 從特徵到預測模型 ## 6.1 認識建模的目標與評估指標 在把特徵轉成預測值之前,我們必須先明確**建模的終極目標**。它可能是: - **分類**:預測顧客是否會流失、信用卡詐騙與否。 - **回歸**:預測房價、銷售額或風險指標。 - **序列預測**:預測股價走勢、需求量。 - **聚類/異常偵測**:找出客戶分群或異常交易。 不同任務對評估指標有不同要求: | 任務 | 典型指標 | 需要注意的點 | |------|----------|--------------| | 二分類 | AUC、Precision‑Recall、F1 | 核心在**成本敏感**:假陽性與假陰性不等值 | | 多分類 | Accuracy、Top‑k Accuracy | 需要考慮類別不均衡 | | 回歸 | RMSE、MAE、R² | 重要的是解釋力與偏差/變異的平衡 | | 序列 | MAPE、MAPE‑α | 需要考慮時間序列特性與季節性 | > **提示**:在業務層面先確定「什麼樣的錯誤會付出更高成本」,再選擇合適的指標。這一步往往是模型失敗的根本原因。 ## 6.2 從簡單模型到複雜模型的迭代 | 模型 | 適用情境 | 優點 | 缺點 | |------|-----------|------|------| | **線性迴歸 / 邏輯斯迴歸** | 大數據、特徵線性可解 | 速度快、易於解釋 | 無法捕捉複雜非線性關係 | | **決策樹 / 隨機森林** | 分類/回歸、特徵非線性 | 直觀、可輸出特徵重要度 | 過擬合、對噪聲敏感 | | **梯度提升機(XGBoost / LightGBM)** | 競賽、商業預測 | 高準確率、可調參數豐富 | 計算成本高、可解釋性較差 | | **深度學習(NN、CNN、RNN)** | 圖像、文字、時序 | 可自動學習特徵 | 需要大量資料、黑箱 | ### 6.2.1 先做基線模型 - **線性/邏輯斯迴歸**:先跑一個基線,觀察 R² 或 AUC。若表現不佳,即可啟動更複雜模型。 - **特徵重要度**:即使是簡單模型,也能得到每個特徵的影響度,幫助你在下一輪特徵工程中聚焦。 ### 6.2.2 超參數調整 - **Grid Search**:全排列搜索,適合小型模型。 - **Random Search**:隨機抽樣,效率高於 Grid,特別是參數空間大時。 - **Bayesian Optimization / Optuna**:使用貝式優化,能在較少迭代中逼近最優。 > **實務小技巧**:將超參數調整流程寫成 **scikit‑learn Pipeline**,並用 `cross_val_score` 或 `GridSearchCV` 直接執行。這樣即可在版本控制中追蹤參數變化,方便回溯。 ## 6.3 模型評估與驗證 ### 6.3.1 交叉驗證 - **K‑Fold CV**:對於樣本量足夠大,K 值通常設為 5 或 10。 - **時間序列 CV**:對於有時間依賴的資料,使用 `TimeSeriesSplit`,避免前後資料泄露。 ### 6.3.2 針對類別不均衡 - **重抽樣**:Oversampling(SMOTE)或 Undersampling。 - **成本敏感學習**:在 loss 函數中加入樣本權重。 - **指標**:使用 **PR AUC** 或 **F2‑Score** 而非單純 Accuracy。 ### 6.3.3 召回與精確的平衡 - **Precision‑Recall 曲線**:對於稀疏事件(如詐騙)更為貼切。 - **閾值調整**:將預測機率轉成類別時,可根據業務成本調整閾值,而非固定 0.5。 ## 6.4 模型解釋與溝通 - **SHAP**:全局與局部解釋,能夠直接畫出每個特徵對預測的貢獻。 - **LIME**:對單一樣本提供局部解釋,適合交互式報告。 - **特徵重要度圖**:將特徵重要度排序,配合 **Partial Dependence Plot**(PDP)說明非線性關係。 > **案例**:在客戶流失預測中,SHAP 值顯示「月活躍天數」和「客戶投訴次數」是關鍵驅動因子。這些可直接告知行銷團隊重點優化。 ## 6.5 模型部署與持續監控 | 步驟 | 內容 | 工具 | |------|------|------| | **模型包裝** | 用 **Pickle / joblib** 或 **ONNX** 將模型序列化 | Python, ONNX | | **API 服務** | Flask / FastAPI 或 **AWS SageMaker** | Flask, FastAPI, SageMaker | | **版本管理** | 將模型文件和腳本放入 Git,使用 DVC 跟蹤大型檔案 | Git, DVC | | **監控** | 跟蹤預測分佈、漂移、召回率 | Evidently, Seldon, Prometheus | | **回饋迴路** | 定期將新數據重新訓練模型 | Airflow, Prefect | ### 6.5.1 模型漂移檢測 - **資料漂移**:使用 **Kolmogorov‑Smirnov** 或 **Chi‑Squared** 檢測特徵分佈變化。 - **概念漂移**:觀察預測指標(如 AUC)隨時間的趨勢變化。 > **實務提醒**:設定自動化報表,每週將模型表現與基線對比,若指標下降 > 5%,即觸發重新訓練流程。 ## 6.6 小結 1. **先定義目標**:明確業務需求,選擇合適指標。 2. **基線 + 迭代**:先跑簡單模型,逐步提升複雜度。 3. **超參數調整**:用合適工具(Optuna、Grid)尋找最佳參數。 4. **交叉驗證**:避免過擬合,保證泛化。 5. **模型解釋**:使用 SHAP、LIME 使結果可被決策者接受。 6. **部署與監控**:自動化流程、版本管理、漂移檢測,確保模型長期可靠。 > **結語**:統計建模與機器學習的核心不只是「預測精準」,而是「能夠可重複、可追蹤、可解釋地將特徵轉化為決策指引」。在實務中,這些要素往往同時考量,方能把數據科學真正落地到業務價值。下一章,我們將進一步探討「資料治理與倫理」——如何在保持隱私與合規的前提下,持續擴充數據資源。