返回目錄
A
數據洞察:以資料科學驅動商業決策 - 第 7 章
第七章 模型選擇與性能評估
發布於 2026-03-02 03:41
# 第七章 模型選擇與性能評估
## 7.1 章節概覽
在前一章我們已將原始資料轉化為可操作的特徵並完成基礎建模。這一章的重點是:
- **確定模型目標**:預測、分類、回歸、分群、排序等。
- **篩選適合的算法**:基於業務需求、資料結構、可解釋性與部署難度。
- **評估與比較**:選擇恰當的指標、交叉驗證策略與偏差‑方差平衡。
- **部署前的最終驗證**:包括外部驗證集、持續監控與迭代更新。
> **核心訊息**:模型是工具,選擇合適的工具並正確評估其效能,才能真正支持商業決策。
## 7.2 模型類型與適用場景
| 模型類型 | 主要功能 | 業務適用情境 | 優缺點 |
|---------|----------|--------------|---------|
| **線性迴歸** | 連續變數預測 | 價格預測、營收預測 | 易解釋、計算成本低,但易受多重共線性影響 |
| **Logistic/多類別分類** | 事件發生率預測 | 客戶流失、商品推薦 | 準確度高,易解釋,但對異常值敏感 |
| **決策樹/隨機森林** | 交互作用、非線性 | 風險評估、客戶分層 | 可解釋性好,對噪聲較不敏感,但易過擬合 |
| **XGBoost / LightGBM** | 高效梯度提升 | 大規模預測、排名 | 速度快、表現優秀,但解釋性較差 |
| **K‑Means / DBSCAN** | 分群 | 客戶細分、行為分群 | 直觀易部署,但需先決定 k 或密度參數 |
| **協同過濾** | 排序/推薦 | 電商商品、內容平台 | 依賴歷史交互,對冷啟動挑戰 |
| **深度學習** | 複雜非線性 | 圖像、語音、文本 | 計算成本高、需要大量資料 |
> **實務提示**:先用簡單模型做基線,確定業務目標後再嘗試複雜模型。
## 7.3 評估指標
### 7.3.1 分類指標
| 指標 | 定義 | 何時使用 |
|------|------|------------|
| **準確率 (Accuracy)** | 正確預測 / 總樣本 | 樣本平衡時 |
| **召回率 (Recall)** | TP / (TP+FN) | 重要避免漏判時 |
| **精確率 (Precision)** | TP / (TP+FP) | 重要避免誤判時 |
| **F1‑Score** | 2×(Precision×Recall)/(Precision+Recall) | 平衡精確率與召回率 |
| **ROC‑AUC** | 曲線下積分 | 分類概率可調整時 |
| **PR‑AUC** | 精確率-召回率曲線下積分 | 樣本極度不平衡時 |
### 7.3.2 回歸指標
| 指標 | 定義 | 何時使用 |
|------|------|------------|
| **MSE / RMSE** | 平方誤差平均 / 根號 | 數值分佈均勻,重視大誤差時 |
| **MAE** | 平均絕對誤差 | 對離群值不敏感時 |
| **R²** | 解釋變異比例 | 需要衡量模型解釋力時 |
### 7.3.3 分群指標
| 指標 | 定義 | 何時使用 |
|------|------|------------|
| **輪廓係數 (Silhouette)** | (b-a)/max(a,b) | 評估聚類緊密度與分離度 |
| **Davies‑Bouldin** | 平均相似度 | 需要量化群間相似度 |
| **Calinski‑Harabasz** | 內部變異 / 外部變異 | 觀察群內一致性 |
> **實務提醒**:多指標同時考量,避免單一指標誤導。
## 7.4 交叉驗證策略
| 方案 | 主要流程 | 優勢 | 適用場景 |
|------|----------|------|------------|
| **K‑Fold CV** | 將資料分成 K 部,輪流作驗證集 | 全資料使用,評估穩定 | 大多數模型 |
| **時間序列 CV** | 只使用過去數據訓練,未來作驗證 | 避免未來洩露 | 時序預測 |
| **Group K‑Fold** | 按群組分層(如客戶、地區) | 保障群組獨立 | 客戶行為、地理分布 |
| **Leave‑One‑Out (LOO)** | 每個樣本單獨驗證 | 最大化利用資料 | 小樣本、嚴格驗證 |
> **常見陷阱**:資料泄露、過度擬合、時間漂移。
## 7.5 模型比較流程(案例:客戶流失預測)
1. **基線建立**:隨機森林、Logistic 回歸。
2. **特徵工程**:使用 7.1 章節的 RFM、目標編碼。
3. **模型訓練**:
python
from sklearn.model_selection import cross_val_score, StratifiedKFold
from xgboost import XGBClassifier
clf = XGBClassifier(n_estimators=500, learning_rate=0.05, max_depth=6)
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
scores = cross_val_score(clf, X, y, cv=cv, scoring='roc_auc')
print('AUC:', scores.mean(), '+/-', scores.std())
4. **評估指標統計**:AUC、Recall@0.1、PR‑AUC。
5. **特徵重要性解讀**:SHAP 值、Permutation Importance。
6. **模型調參**:Bayesian Optimization、Optuna。
7. **最終選擇**:根據 AUC、召回率、模型可解釋性與部署成本決定。
> **教學小結**:模型不只看性能,還要考慮業務解釋、部署環境與可持續維護。
## 7.6 監控與持續改進
| 監控項目 | 方法 | 頻率 |
|----------|------|------|
| **預測漂移** | 監測輸入特徵分佈、模型輸出分佈 | 每週 |
| **性能回落** | 定期重新評估 AUC、召回率 | 每月 |
| **資料漂移** | 檢查原始資料統計變化 | 每月 |
| **業務影響** | KPI 變化、客戶滿意度 | 每季 |
> **自動化實踐**:利用 MLOps 平台(MLflow、Kubeflow)構建 CI/CD,確保模型可追蹤、可重現。
## 7.7 迭代與模型治理
1. **模型版本控制**:每次重訓、調參均生成新版本。
2. **模型治理框架**:確定責任人、審批流程、合規性檢查。
3. **資料隱私**:採用差分隱私、同態加密等技術保護個人資料。
4. **倫理審查**:避免算法偏見、確保公平性。
> **長期策略**:模型不是一次性解決方案,而是需要隨著市場變化和數據增長持續迭代。
## 7.8 小結
- **模型選擇**:先明確業務目標,再從簡單到複雜的模型逐步測試。
- **性能評估**:多指標、多層次驗證,避免單一指標誤導。
- **部署與治理**:自動化流程、版本控制、合規性與倫理審查是關鍵。
- **持續改進**:監控模型漂移,定期回測,確保長期效益。
> **最後一句**:資料科學的核心不只是「做模型」,更是「把模型轉化為可信、可持續的商業洞察」。