返回目錄
A
洞見未來:資料科學在商業決策中的實務與哲學 - 第 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 的最佳實踐。