返回目錄
A
數據洞見:從原始數據到決策智慧 - 第 4 章
第四章:機器學習基礎
發布於 2026-03-05 22:53
# 第四章:機器學習基礎
> 本章將帶您從 EDA 走向 **模型訓練**:探索監督式與非監督式學習方法,並學習如何選擇合適的模型與評估指標。
---
## 4.1 機器學習的全景圖
機器學習(Machine Learning, ML)是讓電腦在沒有明確程式指令下,自行從資料中學習規律並做出預測或決策的技術。它可分為三大類型:
1. **監督式學習(Supervised Learning)**:輸入(特徵)與輸出(標籤)都已知,目標是預測或分類。
2. **非監督式學習(Unsupervised Learning)**:只有輸入特徵,目標是發現資料的內在結構或群集。
3. **強化學習(Reinforcement Learning)**:代理在環境中採取行動並獲得回報,學習最優策略。
> 本書在此章節聚焦於前兩者,因其在商業、金融、行銷等實務場景中使用最為廣泛。
## 4.2 監督式學習的核心流程
監督式學習的基本流程可簡化為四步:
1. **問題定義** – 明確預測目標(回歸 vs 分類)與商業價值。
2. **資料預處理** – 轉換特徵、處理缺失值、標準化/正規化。
3. **模型選擇與訓練** – 根據問題性質挑選算法,並進行交叉驗證。
4. **評估與部署** – 以指標衡量性能,將模型推向實際環境。
### 4.2.1 回歸 vs 分類
| 類型 | 目標 | 常見指標 |
|------|------|----------|
| 回歸 | 預測連續數值 | MSE、RMSE、MAE、R² |
| 分類 | 預測離散類別 | 準確率、召回率、F1、AUC-ROC |
> 例如:預測房價(回歸) vs 判斷客戶是否流失(分類)。
### 4.2.2 特徵工程快速入門
| 步驟 | 目的 | 工具範例 |
|------|------|----------|
| 編碼 | 將類別轉為數值 | One‑Hot、Label Encoding |
| 標準化 | 調整量級差異 | StandardScaler、MinMaxScaler |
| 多項式 | 捕捉非線性關係 | PolynomialFeatures |
| 選擇 | 降低維度,防止過擬合 | SelectKBest、L1 正則化 |
> **實務提醒**:使用 `ColumnTransformer` 可同時對數值與類別特徵執行不同轉換,保持流程乾淨。
### 4.2.3 常見監督式模型
| 類型 | 算法 | 典型場景 |
|------|------|----------|
| 線性回歸 | LinearRegression、Ridge、Lasso | 需求預測、價格建模 |
| 決策樹 | DecisionTreeRegressor / Classifier | 易於解釋,非線性關係 |
| 隨機森林 | RandomForestRegressor / Classifier | 抗噪聲、特徵重要性 |
| XGBoost / LightGBM | Gradient Boosting | 大規模表格資料、競賽 |
| 支援向量機 | SVR / SVC | 高維、小樣本 |
| 神經網路 | MLPRegressor / MLPClassifier | 非線性複雜關係 |
> **選擇策略**:先從簡單模型做基準,再逐步嘗試複雜模型,避免過擬合。
## 4.3 非監督式學習:探索資料的無名寶藏
非監督式學習主要解決兩類問題:
1. **聚類(Clustering)**:將資料分組,群集內相似度高,群集間差異大。
2. **降維(Dimensionality Reduction)**:將高維資料投影到低維空間,保留主要資訊。
### 4.3.1 聚類算法概覽
| 算法 | 特點 | 適用場景 |
|------|------|----------|
| K‑Means | 快速、易實現 | 大規模數據、數值特徵 |
| 層次聚類 | 無需指定 K | 較小資料集、探索性 |
| DBSCAN | 能處理噪聲 | 密度分佈不均、異常檢測 |
| Gaussian Mixture | 機率模型 | 混合分佈、軟分配 |
> **實務技巧**:使用肘部法、輪廓係數確定最佳 K 值。
### 4.3.2 降維方法
| 方法 | 原理 | 典型工具 |
|------|------|----------|
| 主成份分析(PCA) | 線性投影,最大方差 | sklearn.decomposition.PCA |
| t‑SNE | 非線性,保留局部結構 | sklearn.manifold.TSNE |
| UMAP | 高效維度縮減,保留全局 | umap-learn |
> **案例**:利用 PCA 於客戶交易資料中提取 5 個主成份,作為後續聚類或預測的特徵。
## 4.4 評估指標與交叉驗證
### 4.4.1 交叉驗證(Cross‑Validation)
- **k‑Fold**:將資料分為 k 組,交替作為驗證集。
- **Stratified k‑Fold**:保持類別比例,適用於不平衡分類。
- **TimeSeriesSplit**:保留時間順序,適用時序資料。
> **注意**:若資料存在時間依賴,切勿使用隨機拆分,以避免資訊泄露。
### 4.4.2 評估指標詳細說明
| 指標 | 何時使用 | 公式 |
|------|----------|------|
| 準確率 | 分類 | (TP+TN)/Total |
| 精確率 | 需要避免假陽性 | TP/(TP+FP) |
| 召回率 | 需要避免假陰性 | TP/(TP+FN) |
| F1 | 平衡精確率與召回率 | 2*(P*R)/(P+R) |
| AUC‑ROC | 分類器的區分能力 |
| MSE | 回歸 | (1/n)∑(y‑ŷ)² |
| MAE | 回歸 | (1/n)∑|y‑ŷ| |
| R² | 回歸 | 1-SS_res/SS_tot |
> **實務建議**:在不平衡資料集中,AUC‑ROC、F1 更能真實反映模型效能。
## 4.5 參數調優與模型選擇
### 4.5.1 超參數搜尋
- **網格搜尋(Grid Search)**:遍歷所有組合,適合參數範圍小。
- **隨機搜尋(Random Search)**:隨機採樣,能在較大空間中尋得良好方案。
- **Bayesian Optimisation**:利用貝式推論提升搜尋效率。
> **實務技巧**:結合 `Pipeline` 及 `GridSearchCV`,確保預處理不被數據泄漏。
### 4.5.2 過擬合與欠擬合
| 觀察 | 說明 | 解決方案 |
|------|------|----------|
| 訓練準確高,驗證低 | 過擬合 | 增加正則化、降低模型複雜度、使用 Dropout |
| 訓練低 | 欠擬合 | 擴充特徵、使用更複雜模型、減少正則化 |
> **正則化**:L1(Lasso)可做特徵選擇,L2(Ridge)可穩定回歸係數。
## 4.6 實戰案例:客戶流失預測
### 4.6.1 問題說明
- **目標**:預測客戶在接下來 90 天內是否會流失(二元分類)。
- **資料**:
- 客戶基本資料(年齡、性別、地區)
- 交易行為(月消費、購買頻率、停用紀錄)
- 客戶服務互動(投訴次數、客服通話時間)
### 4.6.2 步驟概覽
1. **資料探索**:發現 `churn` 為 15% 的不平衡。
2. **特徵處理**:
- One‑Hot 編碼 `gender`、`region`。
- 標準化數值特徵。
- 使用 `SMOTE` 做過採樣。
3. **模型實驗**:
- 基準:Logistic Regression。
- 高階:RandomForest、XGBoost。
4. **評估**:
- 交叉驗證 5‑Fold,計算 AUC、F1。
- 觀察混淆矩陣,調整 `class_weight`。
5. **部署**:
- 將最佳模型封裝成 API(Flask)並放入 Docker。
- 在 CI/CD 流程中加入單元測試。
> **結果**:XGBoost 在 AUC 上達到 0.84,顯著優於基準模型。
## 4.7 綜合小結
1. **從 EDA 到模型**:良好的探索性分析能減少資料前處理時間,並為模型選擇提供方向。
2. **算法與評估指標**:選擇合適的模型和指標是成功關鍵,特別是在不平衡、時序資料中。
3. **流程化與自動化**:使用 Pipeline、CV、超參數搜尋,能確保模型在多次迭代中保持一致性與可重複性。
4. **部署與維護**:模型不只是數學公式,還需考量監控、漂移檢測與持續學習。
---
> **下章節預告**:第五章將帶您進入 **模型部署與運營**,涵蓋 MLOps 基礎、容器化、CI/CD 與模型監控,確保模型在實務環境中穩健運行。