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またはクリッピング/ウィンソライズ
不均衡クラス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バックエンド、低レイテンシリアルタイム推論用)の両方を提供し、訓練とサービング間の特徴量の一貫性を確保します。