ホーム » Google認定MLエンジニア » ローコード機械学習ソリューションの構築 » 【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による自動化