arrow_back

BigQuery と Vertex AI を使用した出生率データの分析

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

BigQuery と Vertex AI を使用した出生率データの分析

Lab 1時間 universal_currency_alt クレジット: 5 show_chart 中級
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP012

Google Cloud セルフペース ラボ

概要

このラボでは、BigQuery と Vertex AI を使用して、1 億 3,700 万行の大規模な出生率データセットを分析します。

学習内容

このラボの内容:

  • Vertex AI ノートブックを起動する
  • BigQuery のクエリを呼び出す
  • Jupyter でグラフを作成する
  • ML 用データをエクスポートする

このラボでは、Pandas や Jupyter などの使い慣れたツールを使用して、大規模なデータセットを調査する方法について説明します。ポイントは、最初の集計部分を BigQuery で実行して Pandas DataFrame を取得し、小型化された Pandas DataFrame をローカルで処理する点です。Vertex AI には管理された Jupyter 環境が用意されているので、ノートブック サーバーをご自分で実行する必要はありません。

設定

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

  2. 出力は次のようになります。

出力:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. BigQuery を呼び出す

BigQuery コンソールを開く

  1. Google Cloud コンソールで、ナビゲーション メニュー > [BigQuery] を選択します。

[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。

  1. [完了] をクリックします。

BigQuery コンソールが開きます。

  1. クエリエディタで、次のクエリを入力します。
SELECT plurality, COUNT(1) AS num_babies, AVG(weight_pounds) AS ave_weight FROM `bigquery-public-data.samples.natality` WHERE year > 2000 AND year < 2005 GROUP BY plurality
  1. [実行] をクリックします。

  2. 結果を確認します。2000 年から 2005 年までの間に米国で何組の三つ子が生まれたでしょうか。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

BigQuery を呼び出してクエリを実行する

タスク 2. Vertex AI ノートブックを起動する

  1. Cloud コンソールの検索フィールドに「vertex」と入力し、検索結果で [Vertex AI] をクリックします。

  2. 左側のメニューで、[ワークベンチ] をクリックします。

  3. [Notebooks API を有効にする] ボタンをクリックします。

  4. [ワークベンチ] ページの上部で、[+ 新規作成] をクリックします。

  5. ポップアップで、ノートブックの名前を選択します。[リージョン] で [] を選択し、[ゾーン] でそのリージョン内のゾーンを選択します。

  6. [環境] で、[Python 3 (with Intel® MKL)] を選択します。

  7. 残りのフィールドはデフォルトのままにし、[作成] をクリックします。

  8. [JupyterLab を開く] をクリックします。JupyterLab ウィンドウが新しいタブで開きます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。

Vertex AI ノートブック インスタンスを作成する

タスク 3. Vertex AI でデータを可視化する

  1. JupyterLab で、[Notebook] > [Python 3] をクリックして新しいノートブックを開始します。

  2. 以下のコードを入力して BigQuery Python クライアント ライブラリをインポートし、クライアントを初期化します。BigQuery クライアントは、BigQuery API からのメッセージの送受信に使用されます。

from google.cloud import bigquery client = bigquery.Client()
  1. Shift+Enter キーを押してセルを実行します。

  2. ノートブックの次のセルに以下のコードを入力して、BigQuery の一般公開データセット natality に対してクエリを実行します。

sql = """ SELECT plurality, COUNT(1) AS count, year FROM `bigquery-public-data.samples.natality` WHERE NOT IS_NAN(plurality) AND plurality > 1 GROUP BY plurality, year ORDER BY count DESC """ df = client.query(sql).to_dataframe() df.head()

このデータセットには、1969 年から 2008 年までに米国で登録された出生数がすべて記録されています。このクエリでは、多生児の人数(双子の場合は 2、三つ子の場合は 3 など)で出生数が返されます。

  1. Shift+Enter キーを押してセルを実行します。

クラウドでクエリが実行され、DataFrame の先頭のデータ(最初の 5 行)が、コードセルの下に表示されます。Pandas DataFrame ですべての結果を確認して詳細に分析できます。

クエリを実行し、年別の多生児の出生数を多生児の人数ごとに取得する
  1. 次のセルに以下のコードを入力してデータをピボットし、時系列の多生児数の積み上げ棒グラフを作成します。
pivot_table = df.pivot(index='year', columns='plurality', values='count') pivot_table.plot(kind='bar', stacked=True, figsize=(15,7));

次に、性別ごとに赤ちゃんの体重を確認します。

  1. 次のセルに以下のコードを入力し、セルを実行します。
sql = """ SELECT is_male, AVG(weight_pounds) AS ave_weight FROM `bigquery-public-data.samples.natality` GROUP BY is_male """ df = client.query(sql).to_dataframe() df.plot(x='is_male', y='ave_weight', kind='bar');

男の子は女の子より重いでしょうか、軽いでしょうか。結果は想定どおりでしょうか。

クエリを実行し、性別ごとに赤ちゃんの体重を取得する

最後に、妊娠週数によって赤ちゃんの体重がどのように変動しているかを可視化します。

  1. 次のセルに以下のコードを入力して実行します。
sql = """ SELECT gestation_weeks, AVG(weight_pounds) AS ave_weight FROM `bigquery-public-data.samples.natality` WHERE NOT IS_NAN(gestation_weeks) AND gestation_weeks <> 99 GROUP BY gestation_weeks ORDER BY gestation_weeks """ df = client.query(sql).to_dataframe() df.plot(x='gestation_weeks', y='ave_weight', kind='bar'); 注: gestation_weeks フィールドは null 値を許可し、不明な値を 99 として保存するため、このクエリでは gestation_weeks が null または 99 であるレコードを除外しています。

これで、赤ちゃんの体重と妊娠週数との関係を示すグラフができました。

クエリを実行し、赤ちゃんの体重と妊娠週数との関係を取得します。

お疲れさまでした

このラボでは、Vertex AI ノートブックを起動し、BigQuery でクエリを実行して、結果を示すグラフを作成する方法を学びました。

クエストを完了する

このセルフペース ラボは、「Scientific Data Processing」クエストの一部です。クエストとは学習パスを構成する一連のラボのことで、完了すると成果が認められてバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、こちらのクエストまたはこのラボが含まれるクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なすべてのクエストについては、Google Cloud Skills Boost カタログをご覧ください。

次のラボを受講する

Cloud ML Engine での TensorFlow による赤ちゃんの体重予測」に進んでクエストを続けるか、以下のラボをお試しください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2023 年 10 月 17 日

ラボの最終テスト日: 2023 年 10 月 19 日

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。