聊天視窗

洞見未來:資料科學在商業決策中的實務與哲學 - 第 4 章

第四章:機器學習實務

發布於 2026-03-05 20:28

# 第四章:機器學習實務 > **核心觀點**:機器學習不僅是算法的堆砌,更是一套面向商業價值的工程思維。\ > 透過監督式、非監督式與強化學習的結合,資料科學家能從大量非結構化資料中提取洞見,並將模型轉化為可執行的商業決策。 ## 1. 監督式學習(Supervised Learning) ### 1.1 定義 監督式學習以帶標籤(label)的資料訓練模型,預測未來樣本的標籤。常見的問題類型包括: - **回歸**:預測連續數值(如價格、銷量)。 - **分類**:預測離散類別(如是否流失、產品分類)。 ### 1.2 主要算法與特點 | 算法 | 類型 | 優勢 | 適用場景 | |------|------|------|-----------| | 線性迴歸 | 回歸 | 解析式、解釋性強 | 需求預測、成本分析 | | 決策樹 | 分類/回歸 | 可視化、易解釋 | 價格分類、風險評估 | | 隨機森林 | 分類/回歸 | 抗過擬合、處理大數據 | 客戶分群、欺詐偵測 | | XGBoost / LightGBM / CatBoost | 分類/回歸 | 高效、可處理稀疏資料 | 轉化率預測、銷售預測 | | 支持向量機 | 分類 | 高維度優化 | 文本分類、影像辨識 | | 神經網路 | 分類/回歸 | 可處理複雜非線性關係 | 語音辨識、圖像檢測 | ### 1.3 實作流程 1. **資料準備** – 監督式學習要求標籤正確、完整。若標籤缺失,需透過人工標註或半監督方法補全。 2. **特徵工程** – 轉換類別變數、標準化數值、處理缺失值。<br> ```python from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(X) ``` 3. **資料切分** – 將資料分為訓練集、驗證集、測試集(如 70/15/15)。 4. **模型選擇** – 根據業務需求(速度 vs 精度)選擇適合算法。 5. **超參數調優** – GridSearchCV、RandomizedSearchCV 或 Bayesian Optimization(Optuna、Hyperopt)。 6. **評估指標** – 回歸:MAE、RMSE、R²;分類:Accuracy、Precision、Recall、F1、AUC。 7. **模型解釋** – SHAP、LIME 或局部解釋法,確保決策透明。 ### 1.4 實務案例:客戶流失預測 | 步驟 | 操作 | 工具/函式 | |------|------|-----------| | 1. 資料收集 | 取用訂閱、交易、客服對話 | Snowflake、dbt | | 2. 前處理 | 處理缺失、標準化、類別編碼 | pandas, scikit‑learn | | 3. 特徵工程 | 計算平均消費、交易頻率、客服交互時間 | featuretools | | 4. 模型 | LightGBM + XGBoost | lightgbm, xgboost | | 5. 评估 | AUC、Precision‑Recall 曲线 | sklearn.metrics | | 6. 解释 | SHAP summary | shap | | 7. 部署 | ONNX, Flask API | ONNX Runtime | ## 2. 非監督式學習(Unsupervised Learning) ### 2.1 定義 非監督式學習不依賴標籤,通過資料本身的結構或分佈來發現模式。常見問題包括: - **聚類**:將相似樣本分到同一組。 - **降維**:將高維資料映射至低維空間。 - **異常偵測**:找出不符合一般分佈的樣本。 ### 2.2 主要算法 | 算法 | 用途 | 特色 | |------|------|------| | K‑means | 聚類 | 簡單、快速,需預設 K | | 階層聚類 | 聚類 | 無需 K,適合小樣本 | | DBSCAN | 聚類 | 能檢測任意形狀的群集,對噪聲容忍 | | PCA | 降維 | 線性投影、保留方差 | | t‑SNE | 降維 | 適合可視化、非線性投影 | | Autoencoder | 降維/異常偵測 | 深度學習框架,捕捉非線性特徵 | ### 2.3 實作步驟 1. **資料前處理** – 標準化、去除離群值。<br> ```python from sklearn.preprocessing import StandardScaler X_std = StandardScaler().fit_transform(X) ``` 2. **選擇算法** – 根據資料特性和業務需求決定。<br> 3. **參數設定** – K‑means 的 K、DBSCAN 的 eps、min_samples 等。<br> 4. **評估指標** – Silhouette、Calinski‑Harabasz、Davies‑Bouldin。<br> 5. **可視化** – 2D 投影(PCA/t‑SNE)或簇中心可視化。<br> ### 2.4 實務案例:客戶分群 - **目標**:根據消費行為將客戶分為高價值、潛在、流失風險群。 - **流程**: 1. 取出交易頻率、單筆平均消費、產品類別使用率。 2. 以 K‑means (k=3) 進行聚類,利用 Silhouette 分數驗證聚類質量。 3. 結果用於個性化行銷、客戶關係管理。<br> 4. 使用 Tableau 或 PowerBI 可視化各群特徵。<br> ## 3. 強化學習(Reinforcement Learning) ### 3.1 基本概念 | 項目 | 說明 | |------|------| | Agent | 學習者,負責決策 | | Environment | 環境,Agent 與其互動 | | State | 環境當前狀態 | | Action | Agent 在某狀態下採取的行動 | | Reward | Agent 取得的即時回饋 | | Policy | 從 State 到 Action 的映射規則 | | Value Function | 預測未來累積回報 | ### 3.2 典型算法 | 類別 | 算法 | 適用場景 | |------|------|-----------| | 值基礎 | Q‑learning、SARSA | 記錄型任務(簡易網頁推薦) | | 策略梯度 | REINFORCE、Actor‑Critic、PPO | 連續動作、長期規劃(價格調整) | | 近端優化 | DDPG、TD3 | 高維動作空間(機器人控制) | ### 3.3 實作流程 1. **定義環境** – 需要明確 State、Action、Reward。 ```python class PricingEnv(gym.Env): def __init__(self): self.price = 10.0 self.max_price = 50.0 self.min_price = 5.0 def step(self, action): # action 代表價格調整幅度 self.price += action reward = self.simulate_sales(self.price) return self.price, reward, done, info ``` 2. **選擇演算法** – 若動作離散,Q‑learning;若連續,DDPG。 3. **訓練** – 迭代多次,更新 Q 表或神經網路。 4. **評估** – 在真實或仿真環境中檢驗收益。 5. **部署** – 將策略封裝為微服務,與訂價系統集成。 ### 3.4 實務案例:動態價格優化 - **目標**:在多品類電商平台上自動調整商品價格,以最大化收益。<br> - **環境設計**: - State:當前庫存、競品價格、節假日資訊。<br> - Action:加減價幅度(-5%~+5%)。<br> - Reward:單日營收-成本。 - **演算法**:PPO,因其在連續空間與長期回報估算上表現穩定。<br> - **部署**:利用 Ray Serve 或 Kubernetes 自動擴容,實時回調策略。<br> - **效益**:相較於固定價格策略,平均營收提升 12%,客戶流失率下降 3%。 ## 4. 通用實作技巧與工程化 | 項目 | 建議 | |------|------| | 特徵工程 | 使用 `Featuretools` 或 `tsfresh` 進行自動特徵生成。 | | 資料缺失 | 先試用插補(均值/中位數),再考慮多變量插補或模型基礎填補。 | | 標準化 | 先分離測試集,確保無資料泄漏。 | | 超參數調優 | 選擇 Bayesian Optimization (Optuna) 可節省時間。 | | 模型解釋 | SHAP 的 TreeExplainer 能處理 GBM 模型;對深度學習可用 Kernel SHAP。 | | 部署 | 轉為 ONNX / TorchScript,使用 FastAPI 進行服務化。 | | 監控 | 使用 Evidently AI 或 MLflow 追蹤模型漂移、性能退化。 | | 數據版本化 | DVC 或 LakeFS 管理原始與中間資料。 | ## 5. 案例回顧與整合 在上一章(數據工程基礎)中,我們完成了資料抽取、清洗與特徵衍生。這裡,我們展示了如何將這些資料直接投入三種機器學習模式,並結合解釋性工具提升商業信任度。 | 模型 | 業務價值 | 主要指標 | |------|-----------|-----------| | LightGBM | 轉化率預測 | AUC 0.78 | | K‑means | 客戶分群 | Silhouette 0.58 | | PPO | 價格優化 | 收益提升 12% | ## 6. 小結 1. **算法選擇**:不應該只看「最強」,而是看「最適合」。 2. **工程化**:資料版本化、模型監控與自動化是關鍵。 3. **解釋性**:無論何種模型,能夠解釋決策才能獲得商業信任。 4. **哲學回歸**:每一次模型設計,都應回到「為什麼這個商業問題值得解決」的初心,避免純技術化。 > **後續閱讀**:下一章將聚焦於將模型推向生產環境,並說明 MLOps 的最佳實踐。