聊天視窗

數據洞察:從資料到決策的科學方法 - 第 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)提供更深層次的特徵,但需平衡資料量與算力成本。 > **一句話**:特徵工程不是「數據美化」,而是「模型理解」的語言訓練。