Chuyển đến nội dung chính

第2課:數據轉換與特徵工程

SageMaker Processing Jobs進行數據準備。SageMaker Feature Store。 缺失值處理、編碼、正規化、縮放。 文本預處理、不平衡數據技術。

AWS ML Data Transformation Pipeline

特徵工程與數據轉換:Glue、SageMaker Data Wrangler、缺失值處理

1. ML管線中的數據轉換

在模型訓練之前,原始數據需要經過許多轉換步驟。這就是著名格言「Garbage in, garbage out」的由來。MLS-C01考試經常考察數據處理技術和適當的工具。

2. SageMaker Processing Jobs

SageMaker Processing Jobs是在臨時運算叢集上執行數據處理腳本(Python、Spark)的託管服務。

處理器類型框架使用情境
ScriptProcessor自訂Docker容器任何自訂腳本
SKLearnProcessorscikit-learn傳統ML預處理
PySparkProcessorApache Spark大規模分散式處理
FrameworkProcessorTensorFlow/PyTorch深度學習數據準備
SageMaker Processing Job Flow:

S3 (input data)
      ↓
┌─────────────────────┐
│  Processing Job     │
│  (compute cluster)  │
│                     │
│  - Preprocess data  │
│  - Feature engineer │
│  - Split train/test │
└─────────────────────┘
      ↓
S3 (output: train/, validation/, test/)

3. 缺失值處理

策略方法使用時機
刪除刪除行/列MCAR、缺失較少(<5%)
均值/中位數填補用均值填補數值型、MCAR/MAR
眾數填補用最頻繁的值填補分類型
KNN填補使用最近的K個鄰居數據有模式且不太大時
基於模型(MICE)多重插補法複雜的缺失模式
指標特徵新增is_missing列缺失本身包含資訊時

考試提示: 缺失數據的3種類型:MCAR(完全隨機缺失)— 刪除安全;MAR(隨機缺失)— 填補合適;MNAR(非隨機缺失)— 需要指標特徵或領域知識。

4. 分類變數編碼

編碼方法使用時機問題
One-Hot Encoding每個類別一個二元列名義尺度(無順序)、類別數少高基數 → 維度災難
Label Encoding0, 1, 2, 3...序數尺度(有順序)對名義尺度暗示虛假順序
Target Encoding每個類別的目標均值高基數名義尺度不小心會造成數據洩漏風險
Embeddings密集向量表示文本、高基數需要足夠的數據來學習

5. 正規化與縮放

技術公式輸出範圍最適用途
Min-Max正規化(x - min) / (max - min)[0, 1]神經網路、距離為基礎
標準化(Z-score)(x - mean) / stdMean=0, SD=1線性模型、SVM、PCA
Robust Scaler(x - median) / IQR中心化有離群值時
對數轉換log(x)壓縮偏斜分佈

6. 不平衡數據處理

類別不平衡(例如:欺詐檢測中99%正常、1%欺詐)會使模型偏向多數類別。

技術方法方向
過採樣複製少數類別樣本↑ 少數類別
SMOTE合成少數過採樣 — 產生合成樣本↑ 少數類別
欠採樣刪除多數類別樣本↓ 多數類別
類別權重對少數類別的誤分類施加更重的懲罰不改變數據
集成方法BalancedBagging、EasyEnsemble演算法層級

考試提示: 不平衡數據適用的指標:F1分數、AUC-ROC、Precision-Recall — 不要使用Accuracy(會誤導)。AWS SageMaker Clarify可檢測類別不平衡。

7. SageMaker Feature Store

SageMaker Feature Store是儲存、共享和重複使用ML特徵的集中式儲存庫。

Feature Store Architecture:

          Feature Groups
         ┌──────────────────────────────┐
         │  user_features               │
         │  ┌──────┬────────┬────────┐  │
         │  │ id   │ age    │ recency│  │
         │  └──────┴────────┴────────┘  │
         └──────────────────────────────┘
               ↓ writes              ↑ reads
    ┌──────────────────┐   ┌──────────────────┐
    │  Offline Store   │   │  Online Store    │
    │  (S3 - training) │   │  (DynamoDB -     │
    │  batch reads     │   │  low-latency     │
    │                  │   │  inference)      │
    └──────────────────┘   └──────────────────┘

8. 速查表 — 特徵工程

問題解決方案
高基數的分類變數Target Encoding或Embeddings
缺失值(數值)中位數填補 + 指標特徵
偏斜分佈對數轉換或Box-Cox
離群值Robust Scaler或裁剪/Winsorize
不平衡類別SMOTE + 類別權重 + AUC指標
團隊間特徵重複使用SageMaker Feature Store

9. 練習題

Q1: 欺詐檢測數據集中98%為陰性(非欺詐)、2%為陽性(欺詐)。最適合用於模型評估的指標是哪個?

  • A) Accuracy
  • B) R-squared
  • C) AUC-ROC ✓
  • D) Mean Absolute Error

解析:Accuracy對不平衡數據會產生誤導(全部預測為陰性也能達到98% Accuracy)。AUC-ROC在所有閾值下衡量模型區分類別的能力,是不平衡分類的理想指標。

Q2: 哪種技術通過產生合成樣本來解決類別不平衡?

  • A) 隨機欠採樣
  • B) SMOTE(Synthetic Minority Oversampling Technique) ✓
  • C) 類別權重
  • D) 特徵縮放

解析:SMOTE通過在現有少數類別樣本之間進行插值來建立新的合成樣本,而非簡單複製。

Q3: 一家公司希望在訓練管線和即時推論服務之間共享工程特徵。哪個SageMaker功能可以實現?

  • A) SageMaker Processing Jobs
  • B) SageMaker Experiments
  • C) SageMaker Feature Store ✓
  • D) SageMaker Data Wrangler

解析:SageMaker Feature Store提供離線儲存(S3、用於批次訓練)和線上儲存(DynamoDB後端、用於低延遲即時推論),確保訓練和服務之間特徵的一致性。