コンソールへ移動

BigQuery に Predictions データをエクスポートする

さらに分析するために Firebase Predictions データを BigQuery にエクスポートできます。BigQuery では、BigQuery SQL を使用してデータを分析したり、別のクラウド プロバイダにデータをエクスポートしたり、データをカスタム ML モデルで使用したりできます。

BigQuery エクスポートの有効化

  1. Firebase コンソールの [統合] ページに移動します。

  2. BigQuery カードで、[リンク] をクリックします。

  3. 画面上の指示に従って BigQuery を有効にします。

プロジェクトを BiqQuery にリンクすると、次のようになります。

  • Firebase は BigQuery に既存データのコピーをエクスポートします。

  • Firebase は、Firebase プロジェクトから BigQuery へのデータの定期的な同期を設定します。

  • デフォルトでは、プロジェクト内のすべてのアプリは BigQuery にリンクされ、後からプロジェクトに追加するアプリもすべて BigQuery に自動的にリンクされます。また、データを送信するアプリを管理できます。

BigQuery エクスポートを無効にするには、Firebase コンソールでプロジェクトのリンクを解除します。

BigQuery にエクスポートされるデータの概要

プロジェクトの各アプリについて、データのエクスポートにより、各ユーザーの Predictions データを含むテーブルが作成されます。評価セットの一部として Predictions レコードが使用された場合は、評価のラベルとスコアもエクスポートされます。評価ラベルは、「0」(予測がネガティブであった場合)と「1」(予測がポジティブであった場合)のいずれかになります。

ホールドアウト データや評価データとは

すべてのデータがトレーニングに直接使用されるわけではありません。教師あり学習タスクでは一般的ですが、Firebase Predictions ではデータの 20% をホールドアウト データとして確保し、データの残り 80% のみを使用してモデルをトレーニングします。続いて、モデルのパフォーマンスを評価するために、トレーニング期間のデータに基づいてホールドアウト セットのユーザーに対して予測が生成されます。予測は、ラベル期間から生成されたラベルに基づいて、各ユーザーの実際の結果と比較されます。

エクスポートされたデータで可能な操作

BigQuery のエクスポートには、スコアとラベル付きホールドアウト データとともに、すべてのリスク プロファイルの元の予測データが含まれます。

元の Predictions データにアクセスする

すべてのリスク プロファイルの計算済み予測結果が得られるだけでなく、ユーザーごとの元スコアに加えてラベル付きホールドアウト データのセットも取得できます。このデータを使用すると、独自の Predictions のパフォーマンスを評価したり、UI で定義されている 3 つのリスク許容度プロファイルを超えるユーザー グループを作成したりできます。

データを BigQuery に転送する

BigQuery Data Transfer Service は、あらかじめ設定されたスケジュールに基づいて、Google アナリティクス、Crashlytics、Google マーケティング プラットフォーム、Google 広告、YouTube からデータを BigQuery に自動転送するフルマネージド サービスです。その Predictions データを使用して、支出が予測されるユーザー数が最大になる集客チャネルの確認など、複雑な分析を実行できます。

Predictions のエクスポートには、アプリ インストールの一意のインスタンスを識別する instance_id フィールドが含まれます。この値は他のデータと組み合わせて使用できます。

Predictions をあらゆる場面で活用する

Predictions は Firebase Remote Config、Firebase Cloud Messaging、Firebase A/B Testing と統合されているので、Predictions の結果にサーバー側でアクセスしたり、別のサードパーティ ソリューションに push したりできます。現時点では、データのエクスポートは無料です。

データをエクスポートする方法は次のとおりです。

  • BigQuery ウェブ UI の使用
  • CLI コマンド bq extract の実行
  • API またはクライアント ライブラリを介した抽出ジョブの送信

CSV エクスポート用にすべての予測データを取得する

次のサンプルクエリでは、Predictions データをフラット化し、CSV 形式でのエクスポートや直接 Google スプレッドシートへのエクスポートができるようにします。

SELECT
  FORMAT_TIMESTAMP("%Y%m%d",u.prediction_time) AS prediction_date,
  u.instance_id,
  u.app_id,
  u.project_id,
  u.prediction_time,
  p.prediction_name,
  p.score,
  p.id,
  p.evaluation_info.label,
  p.evaluation_info.score AS label_score,
  r.risk_profile_name,
  r.prediction_result
FROM
  Table_Name u,
  u.predictions p,
  p.risk_profiles r
ORDER BY
  u.prediction_time ASC
LIMIT 10

モデル評価(ホールドアウト)に使用される予測の詳細をすべて取得する

SELECT
  FORMAT_TIMESTAMP("%Y%m%d",u.prediction_time) AS prediction_date,
  u.instance_id,
  u.app_id,
  u.project_id,
  u.prediction_time,
  p.prediction_name,
  p.score,
  p.id,
  p.evaluation_info.label,
  p.evaluation_info.score AS label_score,
  r.risk_profile_name,
  r.prediction_result
FROM
  Table_Name u,
  u.predictions p,
  p.risk_profiles r
WHERE
  p.evaluation_info.label is not null
ORDER BY
  u.prediction_time ASC
LIMIT 10

Predictions データとアナリティクス データを組み合わせて高度な分析を実現

Google アナリティクスの BigQuery Export を有効にし、高度な分析のためにアナリティクス イベントのデータを Predictions と結合できます。

チャーン予測が最大の国を分析する

SELECT
  predictions.prediction_name,
  risk_profiles.risk_profile_name,
  events.geo.country,
  COUNT(1) AS count
FROM
  Analytics_Table_Name events,
  Predictions_Table_Name predictions_data,
  predictions_data.predictions predictions,
  predictions.risk_profiles risk_profiles
WHERE
  predictions.prediction_name = 'churn'
  AND risk_profiles.prediction_result = 'POSITIVE'
  AND predictions_data.user_id = events.user_id
GROUP BY
  predictions.prediction_name,
  risk_profiles.risk_profile_name,
  events.geo.country
ORDER BY
  risk_profiles.risk_profile_name

アナリティクスの取得チャネルデータを使用して、最も多くのユーザーが使用すると予測されるチャネルを確認する

SELECT
  predictions.prediction_name,
  risk_profiles.prediction_result,
  risk_profiles.risk_profile_name,
  events.traffic_source.source,
  COUNT(1) as user_count
FROM
  Predictions_Table_Name predictions_data,
  predictions_data.predictions predictions,
  predictions_data.predictions predictions,
  predictions.risk_profiles risk_profiles
WHERE
  predictions.prediction_name = 'spend'
  AND risk_profiles.prediction_result = 'POSITIVE'
  AND predictions_data.user_id = events.user_id
GROUP BY
  predictions.prediction_name,
  risk_profiles.prediction_result,
  risk_profiles.risk_profile_name,
  events.traffic_source.source
ORDER BY
   user_count desc, risk_profiles.risk_profile_name

料金

Predictions からのデータのエクスポートには料金がかかりません。BigQuery には無料使用制限があります。詳細については、BigQuery の料金または BigQuery サンドボックスをご覧ください。