ホーム » Google認定MLエンジニア » ローコード機械学習ソリューションの構築 » 【Google認定MLエンジニア】予測の生成と解釈 ( Prediction generation and interpretation )

【Google認定MLエンジニア】予測の生成と解釈 ( Prediction generation and interpretation )

Google Cloud Professional Machine Learning Engineer 認定試験対策まとめ

🔍 概要

「Prediction generation and interpretation」は、モデルの精度向上・特徴量エンジニアリング・次元削減・モデルの公平性などに関する一連の実務的な意思決定スキルを問うパートです。
BigQuery ML(BQML)を中心としながらも、Vertex AI、DataflowなどGCPの他プロダクトとの連携も求められます。


📌 出題テーマ別まとめ


① 特徴量選択と次元削減(Feature Selection & Dimensionality Reduction)

  • BQMLのFEATURE_SELECTIONで重要な特徴量を自動選定
  • PCA(主成分分析)による次元削減は以下の2通り
    • Dataflow+Apache Beamによる実装
    • BQMLネイティブのPCA機能
  • Vertex AI Feature Storeは特徴量保存・管理用途であり、選定や削減には不向き
  • 手動のスケーリングや変換処理より、GCP統合機能を用いた自動処理が優先

🎯 試験ポイント

  • BQMLのネイティブ機能が最優先FEATURE_SELECTION, PCAなど)
  • 他プロダクトの利用は、BQMLに統合されていない限り正答になりづらい

② 前処理と特徴量変換(Preprocessing & Feature Engineering)

  • 数値特徴量はstandard scalarでスケーリング(BQML)
  • one-hot encodingをBigQuery SQLで記述するのは非推奨(効率が悪い)
  • 特徴量の交差(crossing)は、BQMLのSQL構文で表現
  • Vertex AI Feature StoreやDataflowの利用は、BQML内で完結しないため正解になりにくい

BigQuery SQLでの手動によるOne-Hot Encodingが非推奨とされる理由

「効率性・可読性・保守性の観点で不利になるから」です。以下、詳しく解説します。

🧨 BigQuery SQLでOne-Hot Encodingを手動実装する方法

たとえば、color列に red, blue, green の3カテゴリがあるとします。これをOne-Hot Encodingしようとすると、以下のようなSQLを書きます:

SELECT
IF(color = 'red', 1, 0) AS color_red,
IF(color = 'blue', 1, 0) AS color_blue,
IF(color = 'green', 1, 0) AS color_green
FROM my_table;
😰 なぜ非推奨なのか?
① カテゴリ数が多いと爆発的に列が増える
  • カテゴリ数が100を超えると、手動で列を増やすのは非現実的です。
  • 特にユーザーID・商品コードなど高カーディナリティな特徴には致命的。
② SQLが長く・読みづらく・壊れやすくなる
  • すべての条件を手動で書くと人為ミスが起きやすい。
  • スキーマ変更(カテゴリの追加・削除)にコードの修正が必須になる。
③ パフォーマンスが悪化しやすい
  • 条件分岐(IF文)を大量に含むクエリはBigQueryの実行最適化が難しくなる。
  • それに伴ってクエリコスト(処理料金)も上昇する。
④ 再利用性・自動化パイプラインへの不向き
  • DataflowやVertex AI Pipelinesなどの自動処理と連携しづらく、コードがパイプラインに乗せにくい。
  • MLモデルの再訓練や新カテゴリの対応が発生するたびにSQLを変更する必要がある。
✅ 推奨される代替手段(BQML内)

BQMLの CREATE MODEL では、自動的にOne-Hot Encodingされるケースが多いです:

CREATE MODEL `project.dataset.model_name`
OPTIONS(model_type='logistic_reg') AS
SELECT
*, -- BQMLがカテゴリ変数を自動変換
FROM
`project.dataset.training_data`;
  • 特に STRING 型の列に対してBQMLは内部でOne-Hot Encoding相当の変換を行います。
  • 明示的な変換をせずとも正しい前処理が適用されるよう設計されています。

🎯 試験ポイント

  • スケーリングと交差はBQML内部で処理
  • SQLベースより、統合された関数や構文が優先される

③ モデルの公平性とバイアス対策(Fairness and Bias Mitigation)

  • BQMLはバイアス除去機能を提供していない
  • Vertex AI Model Monitoringを使って、公平性メトリクスの追跡・アラートを実装
  • TFXやAI Hubの活用は、文脈的にBQML外の話になりやすく、正答から外れる

🎯 試験ポイント

  • Vertex AIでのモニタリングが唯一の正解
  • BQML単体ではバイアス対策が難しい点を把握すること

🧠 総まとめ:Prediction generation and interpretationで問われる力

項目要点推奨ツール
特徴量選択自動化・繰り返し可能な選択FEATURE_SELECTION (BQML)
次元削減モデル精度&訓練時間改善PCA(BQML or Dataflow)
スケーリング数値変数の正規化standard scalar (BQML)
エンコーディングカテゴリ変数の処理BQML内の統合関数
特徴量交差相互作用の表現BQMLのSQL構文
公平性の担保バイアス検知・追跡Vertex AI Model Monitoring

✍️ 試験対策Tips

  • まずは「BQMLで完結できる方法」を優先して覚える
  • それでも補えない領域(公平性チェックなど)はVertex AIを使う
  • 「できるが非効率」な手法(SQLでの手動処理等)は選択肢として切り捨てるのが正解