タグ: 機械学習

  • 【Google認定MLエンジニア】Vertex AI Feature Storeにおける特徴量エンジニアリング完全ガイド

    【Google認定MLエンジニア】Vertex AI Feature Storeにおける特徴量エンジニアリング完全ガイド

    ✅ はじめに

    Vertex AI Feature Store は、GCP上で機械学習パイプラインにおける特徴量の生成・バージョン管理・共有・再利用を一元管理できる重要なコンポーネントです。本記事では、試験にも頻出の「特徴量エンジニアリングに関する設問」をベースに、実務・試験の両面で活用できる知識を体系的にまとめます。


    📌 基本概念:Vertex AI Feature Store の役割

    • 機械学習における特徴量を一元的に保存・管理
    • トレーニングとオンライン推論において一貫性ある特徴量を提供
    • 他プロジェクトやチームと再利用・共有が可能
    • 特徴量のバージョン管理と系譜管理(lineage) を内蔵

    🔧 特徴量エンジニアリングにおける4つの中核タスク

    1. 特徴量の作成(Feature Creation)

    • 正解Vertex AI Feature Store を直接使用して作成(例: create_feature メソッド)
    • 非推奨
      • 外部の BigQuery や Dataflow を介しての前処理(無駄なレイヤー追加)
      • TFX を使った変換(実現可能だが非効率)

    試験のポイント:

    「Vertex AI の組み込みツールを使うのが最も効率的」と覚えておく。


    2. 特徴量のバージョン管理(Feature Versioning)

    • 正解feature versioning を Vertex AI Feature Store の機能で直接実装
    • 利点:
      • モデルの再学習やアップデートにおいて変更履歴を追跡できる
      • チーム内で一貫したデータ基盤が保てる

    試験のポイント:

    「全問共通で登場、最重要項目」:すべての正答選択肢に含まれていた。


    3. 特徴量の共有と再利用(Feature Sharing & Reuse)

    • 正解export_feature 関数を使って他チーム・プロジェクトと共有
    • 試験での立ち位置
      • 主役ではないが、再利用性とコラボレーションを促進する副次的ベストプラクティス

    4. 特徴量の系譜管理(Lineage Tracking)

    • 正解:Vertex AI の組み込みツールで lineage をトラッキング
    • 意義:
      • どのデータからどの特徴が生まれたか追跡でき、データ品質とコンプライアンス向上に寄与

    🚫 非推奨パターンと注意事項(CAUTION ALERT)

    方法 理由
    Dataflow や BigQuery による外部前処理 機能的には可能だが、非効率で複雑化を招く
    Vertex AI Workbench での特徴量管理 できるが、Feature Storeの専用機能の方が効率的
    TFX での変換処理 Vertex AI内で完結すべき処理を外部に出すのは非効率

    📝 試験に向けた要点まとめ(EXAM FOCUS)

    • 🔹 **「バージョン管理」**は最優先で覚えるべき。
    • 🔹 **「Vertex AI Feature Store を直接使う」**が前提。
    • 🔹 「前処理や統合を外部ツールで行う」ことは誤答になりやすい
    • 🔹 「Lineage管理とFeature共有」も適切な文脈で選ぶと得点につながる。

    📚 おわりに

    Vertex AI Feature Store は、単なる特徴量保存の場所ではなく、データ品質・共有性・変更追跡性すべてを担保する基盤です。効率的な設計と運用は、モデルの精度だけでなく、チーム全体の生産性にも直結します。試験では上記のベストプラクティスを意識しながら、選択肢のニュアンスに注意しましょう。

  • 【Google認定MLエンジニア】BigQueryによるデータ前処理の基礎と実践

    【Google認定MLエンジニア】BigQueryによるデータ前処理の基礎と実践

    BigQuery MLの前処理(Data Preprocessing)では、専用機能に頼るのではなく、SQL標準機能を駆使してデータを整えることが求められます。試験でもこの方針に沿った知識が問われます。


    ■ 基本的な前処理タスク

    タスク 方法 補足
    データ結合 SQLのJOINでトランザクション・ユーザー・商品テーブルを結合 必要な情報をまとめる
    欠損値補完 IFNULL関数を用いてNULLを特定値(例:0や空文字)で埋める BigQuery MLにCLEAN関数は存在しない
    カテゴリ変換 CASE文を使ってカテゴリ変数を数値化・グルーピング 柔軟な条件分岐を実装
    テキスト正規化 REGEXP_REPLACE関数を使って不要な文字を除去・整形 メール、住所などのクレンジングに有効
    集約・移動平均 ウィンドウ関数(例:OVER(PARTITION BY))を使う 複雑な統計処理に対応

    ■ 最適化タスク(パフォーマンス向上)

    タスク 方法 補足
    大規模データ対応 PARTITION BY句でテーブルを分割管理 クエリ速度を大幅改善
    中間結果整理 WITH句で一時テーブル(Common Table Expression)を活用 サブクエリを見やすく保守性向上
    複雑クエリ整理 VIEW作成で複雑な処理をカプセル化 可読性・メンテナンス性向上

    ■ 実務上の注意点(試験にもよく出る)

    • 外部処理(EXTERNAL_QUERY)は禁止推奨
      ➔ BigQuery外に出すとパフォーマンスとコストが悪化する
    • ローカルEXPORTしてから前処理するのは非効率
      ➔ BigQuery内で完結する設計を心がける
    • JOIN時のインデックス過信は禁物
      ➔ インデックスではなく、パーティションやクラスター設計を優先

    ■ 押さえるべきポイント

    ✅ BigQuery MLに特別な「TRANSFORM」「CLEAN」「NORMALIZE」関数はない
    ✅ SQL標準機能(IFNULL、CASE、WITH、PARTITION BY、REGEXP_REPLACEなど)で前処理する
    ✅ 外部システム・ローカルダウンロードに依存しない
    ✅ パフォーマンスを意識して設計する(PARTITION・WITH句・VIEW化)


    ✏️ まとめ

    BigQuery MLの前処理とは、

    • SQLの力を最大限に活用して
    • BigQuery内部で完結し
    • クエリのパフォーマンスと保守性も両立させる

    こうした実装力を問われる領域です。

  • 【Google認定MLエンジニア】Data Preparation for AutoML 完全ガイド

    【Google認定MLエンジニア】Data Preparation for AutoML 完全ガイド

    AutoMLを効果的に活用するためには、**データ準備(Data Preparation)**が不可欠です。このプロセスでは、データをクリーンで一貫性があり、機械学習モデルに適した形式に整えます。本記事では、Google Cloudの各サービスを用いたAutoML向けのデータ準備方法を、ユースケース別に体系的に整理します。


    🧩 1. データ準備の主要ステップ

    ステップ 説明 主要サービス
    特徴量選択 (Feature Selection) 重要な特徴量を選定してモデル性能を最適化 BigQuery, BigQuery ML
    欠損値処理 (Missing Data Handling) 欠損値を適切に補完してデータの完全性を保つ Dataflow, Cloud Dataprep
    特徴量エンコーディング (Encoding) カテゴリカルデータを数値データへ変換してモデルが処理しやすい形式に整える BigQuery ML
    正規化 (Normalization) 数値データのスケールを統一し、学習を安定化 Cloud Dataprep, BigQuery ML
    データラベリング (Data Labeling) 目的変数(ターゲット変数)のラベル付けを行い、教師あり学習に備える Vertex AI Data Labeling
    言語統一 (Language Consistency) テキストデータにおいて多言語のばらつきを防ぎ、一貫した解析を可能にする Cloud Translation API
    特徴量管理 (Feature Management) 特徴量を一元管理し、モデルへの供給を効率化 Vertex AI Feature Store

    🏢 2. ユースケース別のアプローチ

    ① 小売業での売上予測(タブラー形式データ)

    目標:AutoMLで売上を予測するために、データ準備を行う。

    タスク 推奨アクション ツール
    特徴量選択 重要な特徴量をBigQueryで分析 BigQuery
    欠損値処理 Dataflowでデータクリーニングおよび欠損補完 Dataflow
    特徴量管理 Vertex AI Feature Storeで特徴量を管理・提供 Vertex AI Feature Store

    ② 医療業界での患者アウトカム予測(カテゴリカル+数値データ)

    目標:AutoMLで患者の予後を予測するため、データを整える。

    タスク 推奨アクション ツール
    カテゴリカルエンコーディング BigQuery MLでカテゴリカル変数を数値化 BigQuery ML
    数値データ正規化 Cloud Dataprepで数値変数を正規化 Cloud Dataprep
    欠損値処理 Dataflowでインピューテーション技法を適用 Dataflow

    ③ Eコマースのカスタマーレビュー分析(テキストデータ)

    目標:AutoMLでレビューを分析し、顧客満足度スコアを予測する。

    タスク 推奨アクション ツール
    言語統一 Cloud Translation APIで全レビューを1言語に統一 Cloud Translation API
    欠損値処理 Dataflowでテキストデータを前処理、欠損補完 Dataflow
    データラベリング Vertex AI Data Labeling Serviceで満足度ラベル付け Vertex AI Data Labeling

    ④ 金融業界でのローンデフォルト予測(数値データ中心)

    目標:AutoMLでローンデフォルトを予測するために、金融指標データを準備する。

    タスク 推奨アクション ツール
    特徴量選択 BigQueryで最も関連性の高い金融指標を選定 BigQuery
    欠損値処理 Dataflowでインピューテーションを適用 Dataflow
    特徴量管理 Vertex AI Feature Storeで選択した特徴量を管理 Vertex AI Feature Store

    🎯 試験対策のポイント(EXAM FOCUS)

    • BigQueryを活用して、特徴量の重要度分析やカテゴリカルデータのエンコーディングを行いましょう。
    • Dataflowを使って、欠損値の補完(インピューテーション)やデータクレンジングを実施しましょう。
    • 数値データの正規化には、Cloud Dataprepを使用するのが効果的です。
    • テキストデータ分析では、Cloud Translation APIで多言語データを統一し、解析の一貫性を確保しましょう。

    ⚠️ 注意すべき落とし穴(CAUTION ALERT)

    • Cloud StorageCloud SQLはあくまでデータの保管先であり、データ準備プロセス(前処理)の一部ではありません。これらを選択肢に入れる際は目的をよく確認しましょう。
    • TensorFlowは画像やテキストデータの拡張(データ増強)には有効ですが、AutoMLのタブラー形式データ準備では不要です。無駄な工程を増やさないようにしましょう。
  • 【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での手動処理等)は選択肢として切り捨てるのが正解
  • 【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による自動化