タグ: SQL特徴量生成

  • 【Google認定MLエンジニア】特徴選択と特徴量エンジニアリング(Feature Selection and Engineering)ガイド

    【Google認定MLエンジニア】特徴選択と特徴量エンジニアリング(Feature Selection and Engineering)ガイド

    Google Cloud の BigQuery ML 環境をベースにした「特徴選択と特徴量エンジニアリング」の戦略を体系的に整理します。この知識は、機械学習モデルの精度向上・計算効率の最適化・スケーラビリティの担保に不可欠です。


    🧩 1. 特徴量エンジニアリングの目的

    目的 説明
    モデル性能の向上 意味のある新しい特徴量の作成により、モデルの精度を高める。
    データのスケーラビリティ 一貫した処理・自動化されたパイプラインにより、大規模データへの対応を強化。
    学習効率の向上 無駄な特徴を削減し、学習コストを下げる。

    🔧 2. BigQuery ML における主要なエンジニアリング手法

    2.1 欠損値への対応

    • 方法: SQLベースで IFNULL() などの関数を活用
    • 注意点: 欠損値処理は予測精度に直結するため、事前処理で徹底的に対策

    2.2 カテゴリカルデータの変換

    手法 概要 適用場面
    One-Hot Encoding 各カテゴリを0/1の列に展開 少数カテゴリ
    Label Encoding ラベルを数値に変換 順序付きカテゴリ
    Feature Hashing 高カーディナリティカテゴリを効率的に表現 大量のユニーク値がある場合(例:郵便番号)

    🧠 3. 特徴選択(Feature Selection)

    3.1 正則化による選択

    • Lasso回帰(L1正則化)
      • 重要でない特徴の係数をゼロにする
      • MODEL_TYPE='linear_reg', L1_REG を指定

    3.2 Feature Importance Metrics

    • 方法: ML.FEATURE_IMPORTANCE関数で重要度を算出
    • 目的: 予測精度に寄与する特徴量の可視化と選別

    🧪 4. 特徴量のスケーリングと変換

    処理 BigQuery ML内での対応 備考
    Standard Scaling ❌非対応 Dataflow等で前処理が必要
    正規化(Normalization) ❌非対応 外部パイプラインで実施

    🧬 5. 新たな特徴量の生成

    • SQLによる派生特徴量の生成

      • 例: 売上 = 単価 × 数量
      • 実装: CREATE MODELTRANSFORM を活用(SQLで表現可能)
    • Feature Crosses

      • 複数カテゴリカル特徴の掛け合わせ
      • 特定の組み合わせパターンの意味合いを捉える

    🤖 6. 自動化とパイプライン化

    方法 内容 利点
    Dataflow + Apache Beam 前処理パイプライン構築 一貫性と再現性の担保
    Vertex AI Pipelines 特徴量処理・モデル学習の自動化 スケーラブルなMLワークフロー構築

    ⚠️ 7. 注意すべき非対応機能

    機能名 状況 代替手段
    PCA(主成分分析) ❌未対応 手動で相関の高い特徴を削除する等
    Recursive Feature Elimination (RFE) ❌未対応 LassoやFeature Importanceで代替
    ハイパーパラメータチューニング ❌未対応 外部ツール(Vertex AI等)を使用

    ※ 現在のBQMLはPCAにネイティブ対応しています

    • 過去(〜2022年頃まで):BQMLにはPCA(主成分分析)は未対応でした。
    • 現在(2023年〜):BQMLは CREATE MODEL で MODEL_TYPE=’pca’ を指定することで、ネイティブにPCAモデルを構築可能になっています。

    ✅ 試験対策のためのまとめ

    試験フォーカス 警告アラート
    欠損値処理・特徴量変換・SQLによる生成 PCAやRFEは BigQuery ML に直接は存在しない
    正則化(Lasso)やFeature Importance 正規化・スケーリングはBigQuery ML内では未サポート
    Feature Hashingや自動化パイプライン構築 k-means は欠損値処理・次元削減には不向き

    📌 おすすめの学習順序(習得ステップ)

    1. SQLによる特徴量生成
    2. 欠損値処理とカテゴリ変換
    3. Lasso回帰・Feature Importanceの理解
    4. Feature Crosses・Feature Hashingの応用
    5. Dataflow/Vertex AIによる自動化