返回目錄
A
數據洞察:從資料到決策的科學方法 - 第 5 章
5. 特色工程:把原始數據轉化為模型的語言
發布於 2026-02-21 01:58
# 5. 特色工程:把原始數據轉化為模型的語言
> **關鍵字**:特徵選擇、特徵轉換、特徵縮放、交互項、降維、嵌入、特徵重要性、可解釋性。
---
## 5.1 特色工程的定位
在 **EDA** 的結論基礎上,我們已經知道哪些變數值得關注,哪些資料不可靠。此時的任務是將這些資訊**「語言化」**,讓機器學習演算法能直接閱讀並發揮。簡而言之,特色工程是**「資料→特徵→模型」**三部曲中的關鍵過渡。
> **一句話**:特徵工程就像是給模型做「翻譯」——把業務語言和統計語言轉成機器能理解的語句。
---
## 5.2 特徵選擇:先決定哪些要說
1. **單變數評估**
- 相關係數(Pearson、Spearman)
- 卡方檢驗、ANOVA
2. **高階評估**
- 基於模型的特徵重要性:決策樹、隨機森林、XGBoost
- L1 正則化(Lasso)
3. **共線性處理**
- VIF(Variance Inflation Factor)> 5 或 10 時可考慮刪除
- 主成分分析(PCA)或因子分析降維
> **實作範例**:Python 以 `sklearn.feature_selection` 為核心。
python
from sklearn.feature_selection import SelectKBest, f_regression
X_selected = SelectKBest(score_func=f_regression, k=10).fit_transform(X, y)
---
## 5.3 特徵轉換:讓數據更貼近模型
| 轉換方式 | 典型情境 | 目的 |
|---|---|---|
| 標準化 | 需要正態分佈的演算法(如 SVM、線性回歸) | 離散程度相同 |
| 轉化 | Log、Box‑Cox、Yeo‑Johnson | 針對偏態分佈 |
| 分箱 | 數值變數轉成離散類別 | 處理非線性關係、提升可解釋性 |
| One‑Hot / Target Encoding | 類別型變數 | 避免順序假設 |
| 交互項 | 捕捉兩個變數共同效應 | 擴充特徵空間 |
> **小技巧**:在多變數回歸時,**交互項**往往比單一變數提供更高解釋度,但同時也會增加維度,請配合 Lasso 或 RFE 來控制。
---
## 5.4 特徵縮放:讓距離計算更有意義
| 方法 | 使用情境 |
|---|---|
| Min‑Max Scaling | 需要限制在 0‑1 的場景(如神經網路) | 避免數值爆炸 |
| Standard Scaling | 需要零均值、單位方差 | 適用大多數演算法 |
| Robust Scaling | 有大量離群值時 | 依中位數與 IQR 進行縮放 |
python
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
---
## 5.5 特徵交互與組合
1. **Polynomial Features**(多項式)
python
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly.fit_transform(X)
2. **Feature Engineering Pipeline**
- 先做缺失處理 → 缩放 → 交互 → 降維 → 交付
- 以 `Pipeline` 方式串接,保證可重現性。
---
## 5.6 先進技巧:嵌入與深度學習特徵
- **Embedding**:將高維離散特徵轉成低維向量(常見於推薦系統)
- **Autoencoder**:利用深度模型提取非線性特徵
- **Feature Hashing**:處理大規模類別特徵,避免維度爆炸
> **實務提醒**:嵌入往往需要大量資料與 GPU;在資料量不足時,傳統 One‑Hot + Lasso 仍是安全選項。
---
## 5.7 實務案例:電商客戶流失預測
| 步驟 | 具體做法 |
|---|---|
| 資料探索 | 確認流失標籤、客戶基本資訊、交易行為 |
| 特徵選擇 | 先用 `SelectKBest` 取得 top 15,再用隨機森林確認重要性 |
| 特徵轉換 | 對 `MonthlySpend` 做 log 轉換,對 `PurchaseCount` 分箱 |
| 交互項 | `AvgSpendPerVisit * DaysSinceLastVisit` 交互 |
| 縮放 | `StandardScaler` 在所有數值特徵上 |
| 模型 | LightGBM 與 Logistic Regression 交叉驗證比較 |
| 評估 | AUC、Precision‑Recall 曲線、特徵重要性圖 |
> **結果**:LightGBM 在 AUC 上提升 4%,但 Logistic Regression 在解釋性上更佳。兩者結合使用(stacking)可進一步提升表現。
---
## 5.8 小結
- **特色工程** 是「資料→模型」橋梁,關鍵在於 **選擇**、**轉換**、**縮放**、**交互**。
- **Pipeline** 是保持重現性的關鍵工具。
- **可解釋性**:特徵重要性、SHAP 值、Partial Dependence Plot 可幫助解讀模型決策。
- **先進方法**(Embedding、Autoencoder)提供更深層次的特徵,但需平衡資料量與算力成本。
> **一句話**:特徵工程不是「數據美化」,而是「模型理解」的語言訓練。