GSP246

概要
BigQuery は、Google が低価格で提供する NoOps のフルマネージド分析データベースです。テラバイト単位の大規模なデータをクエリすることが可能で、インフラストラクチャを所有して管理したりデータベース管理者を配置したりする必要はありません。
BigQuery ML は、最小限のコーディングで ML モデルを作成、トレーニング、評価、予測する機能をデータ アナリストに提供します。
このラボでは、BigQuery の一般公開データセットの中から、数百万件に及ぶニューヨーク市内のタクシー賃走データを探索します。このデータを使用して ML モデルを BigQuery 内に作成し、モデル入力に基づいてタクシー運賃を予測します。次に、モデルの性能を評価し、そのモデルで予測を行います。
学習内容
このラボでは、次のタスクの実行方法について学びます。
- BigQuery を使用して一般公開データセットを見つける
- タクシーの一般公開データセットでクエリを実行して探索する
- バッチ予測に使用するトレーニングと評価のデータセットを作成する
- BigQuery ML で予測(線形回帰)モデルを作成する
- ML モデルの性能を評価する
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
- ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。ラボを開始して Google Cloud コンソールにログインする方法
- 
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。
左側の [ラボの詳細] ペインには、以下が表示されます。 
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
 
- 
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。 ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。 ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。 注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
- 
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。 {{{user_0.username | "Username"}}}[ラボの詳細] ペインでもユーザー名を確認できます。 
- 
[次へ] をクリックします。 
- 
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。 {{{user_0.password | "Password"}}}[ラボの詳細] ペインでもパスワードを確認できます。 
- 
[次へ] をクリックします。 重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。
注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
- 
その後次のように進みます。 
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
 
その後、このタブで Google Cloud コンソールが開きます。
注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。
 
BigQuery コンソールを開く
- Google Cloud コンソールで、ナビゲーション メニュー > [BigQuery] を選択します。
[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。
- [完了] をクリックします。
BigQuery コンソールが開きます。
タスク 1. ニューヨーク市のタクシーデータを探索する
質問: 2015 年のイエロー タクシーの毎月の賃走回数はどれくらいですか。
- 次の SQL コードをコピーしてクエリエディタに貼り付けます。
#standardSQL
SELECT
  TIMESTAMP_TRUNC(pickup_datetime,
    MONTH) month,
  COUNT(*) trips
FROM
  `bigquery-public-data.new_york.tlc_yellow_trips_2015`
GROUP BY
  1
ORDER BY
  1
- [実行] をクリックします。
次の結果が表示されます。

2015 年におけるニューヨーク市内のタクシー賃走回数は、毎月 1,000 万回を超えていることがわかります。これはかなりの量です。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
    2015 年の毎月のイエロー タクシーの賃走回数を計算する
質問: 2015 年のイエロー タクシーの平均速度は?
- 前のクエリを以下に置き換え、[実行] をクリックします。
#standardSQL
SELECT
  EXTRACT(HOUR
  FROM
    pickup_datetime) hour,
  ROUND(AVG(trip_distance / TIMESTAMP_DIFF(dropoff_datetime,
        pickup_datetime,
        SECOND))*3600, 1) speed
FROM
  `bigquery-public-data.new_york.tlc_yellow_trips_2015`
WHERE
  trip_distance > 0
  AND fare_amount/trip_distance BETWEEN 2
  AND 10
  AND dropoff_datetime > pickup_datetime
GROUP BY
  1
ORDER BY
  1次の結果が表示されます。

日中の平均速度はおよそ時速 11~12 マイルですが、午前 5 時の平均速度はほぼ倍の時速 21 マイルになっています。午前 5 時は交通量が少ないはずなので、これは直感的に理解できます。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
    2015 年のイエロー タクシーの平均速度を計算する
タスク 2. 対象を特定する
次に、機械学習モデルを BigQuery に作成し、過去の賃走データセットに基づいてニューヨーク市のタクシー運賃を予測します。乗車前に運賃を予測できれば、乗客とタクシー会社の双方が、より効率的に乗車と配車の計画を立てられるようになります。
タスク 3. 特徴量を選択し、トレーニング データセットを作成する
ニューヨーク市のイエロー タクシーのデータセットは、市が提供する一般公開データセットです。これは BigQuery に読み込まれ、自由に探索できるようになっています。
フィールドの全一覧を確認してから、データセットをプレビューし、ML モデルが過去のタクシー賃走と運賃の関係を理解するのに役立つ特徴を見つけます。
以下のフィールドが運賃予測モデルに適した入力であるかどうかをテストします。
- 通行料
- 運賃
- 時間帯
- 乗車場所
- 降車場所
- 乗客の人数
- クエリを以下に置き換えます。
#standardSQL
WITH params AS (
    SELECT
    1 AS TRAIN,
    2 AS EVAL
    ),
  daynames AS
    (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek),
  taxitrips AS (
  SELECT
    (tolls_amount + fare_amount) AS total_fare,
    daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek,
    EXTRACT(HOUR FROM pickup_datetime) AS hourofday,
    pickup_longitude AS pickuplon,
    pickup_latitude AS pickuplat,
    dropoff_longitude AS dropofflon,
    dropoff_latitude AS dropofflat,
    passenger_count AS passengers
  FROM
    `nyc-tlc.yellow.trips`, daynames, params
  WHERE
    trip_distance > 0 AND fare_amount > 0
    AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.TRAIN
  )
  SELECT *
  FROM taxitripsこのクエリについて、以下の点に注意します。
- クエリのメインの部分は一番下の「SELECT * FROM taxitrips」です。
- 
taxitripsがニューヨーク市のデータセットの抽出の大部分を担い、SELECTにトレーニングの特徴とラベルが含まれます。
- 
WHEREでトレーニングを行わないデータを取り除きます。
- 
WHEREには、データの 1/1,000 のみを取得するためのサンプリング句も含まれます。
- 独立した EVALセットを簡単に構築できるよう、TRAINという変数を定義しています。
- このクエリの目的について理解を深めたところで、[実行] をクリックします。
次のような結果が表示されます。

どれがラベル(正解)ですか。
total_fare がラベル(今回の予測対象)です。このフィールドは tolls_amount と fare_amount から作成しています。チップは任意であるため、モデルでは無視できます。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
    フィールドが運賃予測モデルに適した入力であるかどうかをテストする
タスク 4. モデルを格納する BigQuery データセットを作成する
このセクションでは、新しい BigQuery データセットを作成します。このデータセットに ML モデルを格納します。
- 
左側の [エクスプローラ] パネルで、プロジェクト ID の横にある [アクションを表示] アイコンをクリックした後、[データセットを作成] をクリックします。 
- 
[データセットを作成] ダイアログに、次のように入力します。 
- [データセット ID] に「taxi」と入力します。
- 
ロケーション タイプとして、[us(米国の複数のリージョン)] を選択します。
- その他の値はデフォルトのままにします。
- [データセットを作成] をクリックします。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
    モデルを格納する BigQuery データセットを作成する
タスク 5. BigQuery ML モデルタイプを選択し、オプションを指定する
最初に使用する特徴を選択したので、ML モデルを BigQuery で作成する準備ができました。
次のモデルタイプから選択できます。
- 
予測: 線形回帰による、翌月の売上などの数値の予測(linear_reg)。
- 
分類: ロジスティック回帰による、迷惑メールの分類などのバイナリ分類またはマルチクラス分類(logistic_reg)。
- 
クラスタリング: 原因分析のために教師なし学習を使用する場合に利用できる、K 平均法クラスタリング(kmeans)。
注: ML で使用されるモデルタイプは他にも多数あります(ニューラル ネットワークやディシジョン ツリーなど)。これらは TensorFlow などのライブラリで利用可能です。BQML は現時点で上記の 3 つをサポートしています。詳細については、BQML ロードマップをご覧ください。
- 次のクエリを入力して、モデルを作成し、モデル オプションを指定します。
CREATE or REPLACE MODEL taxi.taxifare_model
OPTIONS
  (model_type='linear_reg', labels=['total_fare']) AS
WITH params AS (
    SELECT
    1 AS TRAIN,
    2 AS EVAL
    ),
  daynames AS
    (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek),
  taxitrips AS (
  SELECT
    (tolls_amount + fare_amount) AS total_fare,
    daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek,
    EXTRACT(HOUR FROM pickup_datetime) AS hourofday,
    pickup_longitude AS pickuplon,
    pickup_latitude AS pickuplat,
    dropoff_longitude AS dropofflon,
    dropoff_latitude AS dropofflat,
    passenger_count AS passengers
  FROM
    `nyc-tlc.yellow.trips`, daynames, params
  WHERE
    trip_distance > 0 AND fare_amount > 0
    AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.TRAIN
  )
  SELECT *
  FROM taxitrips
- 
次に、[実行] をクリックしてモデルのトレーニングを行います。 
- 
モデルのトレーニングが終わるのを待ちます(5~10 分)。 
モデルのトレーニングが終わると、モデルが正しくトレーニングされたことを示す「このステートメントにより、qwiklabs-gcp-03-xxxxxxxx:taxi.taxifare_model という名前の新しいモデルが作成されます。」というメッセージが表示されます。
- taxi データセット内に taxifare_model があることを確認します。
次に、未知の評価データに対するモデルの性能を評価します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
    タクシー運賃モデルを作成する
タスク 6. 分類モデルの性能を評価する
性能の評価基準を選択する
線形回帰モデルには、二乗平均平方根誤差(RMSE)などの損失指標を使用します。RMSE が下がるまでトレーニングを続け、モデルを改善していきます。
BQML では、トレーニング済みの ML モデルを評価するときにクエリ可能なフィールドとして mean_squared_error があります。RMSE を取得するには SQRT() を追加します。
トレーニングが完了したので、ML.EVALUATE を使用したクエリでモデルの性能を評価できます。
- 以下をコピーしてクエリエディタに貼り付け、[実行] をクリックします。
#standardSQL
SELECT
  SQRT(mean_squared_error) AS rmse
FROM
  ML.EVALUATE(MODEL taxi.taxifare_model,
  (
  WITH params AS (
    SELECT
    1 AS TRAIN,
    2 AS EVAL
    ),
  daynames AS
    (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek),
  taxitrips AS (
  SELECT
    (tolls_amount + fare_amount) AS total_fare,
    daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek,
    EXTRACT(HOUR FROM pickup_datetime) AS hourofday,
    pickup_longitude AS pickuplon,
    pickup_latitude AS pickuplat,
    dropoff_longitude AS dropofflon,
    dropoff_latitude AS dropofflat,
    passenger_count AS passengers
  FROM
    `nyc-tlc.yellow.trips`, daynames, params
  WHERE
    trip_distance > 0 AND fare_amount > 0
    AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.EVAL
  )
  SELECT *
  FROM taxitrips
  ))params.EVAL フィルタで、異なるタクシー賃走データセットに対してモデルを評価します。
- モデルの実行後、モデルの結果を確認します(モデルの実際の RMSE 値はわずかに異なる場合があります)。
| 行 | rmse | 
| 1 | 9.477056435999074 | 
モデルを評価したら、RMSE が 9.47 になりました。ここで取得したのは二乗平均平方根誤差(RMSE)であるため、誤差 9.47 は total_fare と同じ単位で評価できます。したがって、+-$9.47 になります。
この損失指標で、このモデルを本番環境に使用してもいいかどうかは、モデルのトレーニング開始前に設定するベンチマーク基準によって異なります。ベンチマークとは、許容できる最低レベルのモデルの性能と精度を確立するための基準です。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
    分類モデルの性能を評価する
タスク 7. タクシー運賃を予測する
次に、新しいモデルを使用して予測を行うためのクエリを作成します。
- 以下をコピーしてクエリエディタに貼り付け、[実行] をクリックします。
#standardSQL
SELECT
*
FROM
  ml.PREDICT(MODEL `taxi.taxifare_model`,
   (
 WITH params AS (
    SELECT
    1 AS TRAIN,
    2 AS EVAL
    ),
  daynames AS
    (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek),
  taxitrips AS (
  SELECT
    (tolls_amount + fare_amount) AS total_fare,
    daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek,
    EXTRACT(HOUR FROM pickup_datetime) AS hourofday,
    pickup_longitude AS pickuplon,
    pickup_latitude AS pickuplat,
    dropoff_longitude AS dropofflon,
    dropoff_latitude AS dropofflat,
    passenger_count AS passengers
  FROM
    `nyc-tlc.yellow.trips`, daynames, params
  WHERE
    trip_distance > 0 AND fare_amount > 0
    AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.EVAL
  )
  SELECT *
  FROM taxitrips
));タクシー運賃に対するモデルの予測が、その賃走の実際の運賃とその他の特徴とともに表示されます。結果は以下のようになります。

完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
    タクシー運賃を予測する
タスク 8. 特徴量エンジニアリングによるモデルの強化
機械学習モデルの構築は反復的なプロセスです。初期モデルの性能を評価した後、前に戻って機能や行をプルーニングし、改善の余地がないか確認します。
トレーニング データセットのフィルタリング
次に、タクシー運賃の一般的な統計情報を表示します。
- 以下をコピーしてクエリエディタに貼り付け、[実行] をクリックします。
SELECT
  COUNT(fare_amount) AS num_fares,
  MIN(fare_amount) AS low_fare,
  MAX(fare_amount) AS high_fare,
  AVG(fare_amount) AS avg_fare,
  STDDEV(fare_amount) AS stddev
FROM
`nyc-tlc.yellow.trips`
# 1,108,779,463 件次のような出力が返されます。

データセットに異常値(負の値の運賃や $50,000 を超える運賃など)があるのがわかります。モデルが不自然な外れ値を学習しないように、タクシー運賃に関する知識を適用します。
$6 から $200 までの間の運賃のみにデータを制限します。
- 以下をコピーしてクエリエディタに貼り付け、[実行] をクリックします。
SELECT
  COUNT(fare_amount) AS num_fares,
  MIN(fare_amount) AS low_fare,
  MAX(fare_amount) AS high_fare,
  AVG(fare_amount) AS avg_fare,
  STDDEV(fare_amount) AS stddev
FROM
`nyc-tlc.yellow.trips`
WHERE trip_distance > 0 AND fare_amount BETWEEN 6 and 200
# 843,834,902 件次のような出力が返されます。

結果は多少絞られました。今回はニューヨーク市にターゲットを絞っているため、ここで移動距離を制限します。
- 以下をコピーしてクエリエディタに貼り付け、[実行] をクリックします。
SELECT
  COUNT(fare_amount) AS num_fares,
  MIN(fare_amount) AS low_fare,
  MAX(fare_amount) AS high_fare,
  AVG(fare_amount) AS avg_fare,
  STDDEV(fare_amount) AS stddev
FROM
`nyc-tlc.yellow.trips`
WHERE trip_distance > 0 AND fare_amount BETWEEN 6 and 200
    AND pickup_longitude > -75 #タクシーの移動距離の制限
    AND pickup_longitude < -73
    AND dropoff_longitude > -75
    AND dropoff_longitude < -73
    AND pickup_latitude > 40
    AND pickup_latitude < 42
    AND dropoff_latitude > 40
    AND dropoff_latitude < 42
    # 827,365,869 件次のような出力が返されます。

この学習モデルには、まだ 8 億を超える乗車件数を含む大きなサイズのトレーニング データセットがあります。以下の新しい制約を使用してモデルを再トレーニングし、それがどの程度良好に機能するかを見てみます。
モデルの再トレーニング
新しいモデル taxi.taxifare_model_2 を呼び出し、線形回帰モデルの再トレーニングにより合計運賃を予測します。乗車と降車の間のユークリッド距離(直線)のための計算機能もいくつか追加しました。
- 以下をコピーしてクエリエディタに貼り付け、[実行] をクリックします。
CREATE OR REPLACE MODEL taxi.taxifare_model_2
OPTIONS
  (model_type='linear_reg', labels=['total_fare']) AS
WITH params AS (
    SELECT
    1 AS TRAIN,
    2 AS EVAL
    ),
  daynames AS
    (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek),
  taxitrips AS (
  SELECT
    (tolls_amount + fare_amount) AS total_fare,
    daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek,
    EXTRACT(HOUR FROM pickup_datetime) AS hourofday,
    SQRT(POW((pickup_longitude - dropoff_longitude),2) + POW(( pickup_latitude - dropoff_latitude), 2)) as dist, #乗車と降車の間のユークリッド距離
    SQRT(POW((pickup_longitude - dropoff_longitude),2)) as longitude, #乗車と降車の間のユークリッド距離(経度)
    SQRT(POW((pickup_latitude - dropoff_latitude), 2)) as latitude, #乗車と降車の間のユークリッド距離(緯度)
    passenger_count AS passengers
  FROM
    `nyc-tlc.yellow.trips`, daynames, params
WHERE trip_distance > 0 AND fare_amount BETWEEN 6 and 200
    AND pickup_longitude > -75 #タクシーの移動距離の制限
    AND pickup_longitude < -73
    AND dropoff_longitude > -75
    AND dropoff_longitude < -73
    AND pickup_latitude > 40
    AND pickup_latitude < 42
    AND dropoff_latitude > 40
    AND dropoff_latitude < 42
    AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.TRAIN
  )
  SELECT *
  FROM taxitripsモデルの再トレーニングには数分かかります。コンソールに以下のメッセージが表示されたら、次のステップに進むことができます。

新しいモデルの評価
線形回帰モデルが最適化されたので、それを使ってデータセットを評価し、どの程度機能するかを見てみます。
- 以下をコピーしてクエリエディタに貼り付け、[実行] をクリックします。
SELECT
  SQRT(mean_squared_error) AS rmse
FROM
  ML.EVALUATE(MODEL taxi.taxifare_model_2,
  (
  WITH params AS (
    SELECT
    1 AS TRAIN,
    2 AS EVAL
    ),
  daynames AS
    (SELECT ['Sun', 'Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat'] AS daysofweek),
  taxitrips AS (
  SELECT
    (tolls_amount + fare_amount) AS total_fare,
    daysofweek[ORDINAL(EXTRACT(DAYOFWEEK FROM pickup_datetime))] AS dayofweek,
    EXTRACT(HOUR FROM pickup_datetime) AS hourofday,
    SQRT(POW((pickup_longitude - dropoff_longitude),2) + POW(( pickup_latitude - dropoff_latitude), 2)) as dist, #乗車と降車の間のユークリッド距離
    SQRT(POW((pickup_longitude - dropoff_longitude),2)) as longitude, #乗車と降車の間のユークリッド距離(経度)
    SQRT(POW((pickup_latitude - dropoff_latitude), 2)) as latitude, #乗車と降車の間のユークリッド距離(緯度)
    passenger_count AS passengers
  FROM
    `nyc-tlc.yellow.trips`, daynames, params
WHERE trip_distance > 0 AND fare_amount BETWEEN 6 and 200
    AND pickup_longitude > -75 #タクシーの移動距離の制限
    AND pickup_longitude < -73
    AND dropoff_longitude > -75
    AND dropoff_longitude < -73
    AND pickup_latitude > 40
    AND pickup_latitude < 42
    AND dropoff_latitude > 40
    AND dropoff_latitude < 42
    AND MOD(ABS(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING))),1000) = params.EVAL
  )
  SELECT *
  FROM taxitrips
  ))次のような出力が返されます。

RMSE は、+-$5.12 に減少しました。これは最初のモデルの +-$9.47 よりも大幅に改善しています。
RMSE により予測エラーの標準偏差が定義されるために、再トレーニングされた線形回帰によってモデルの精度が大幅に向上したことがわかります。
タスク 9. 理解度チェック
今回のラボで学習した内容の理解を深めていただくため、以下の多肢選択問題を用意しました。正解を目指して頑張ってください。
タスク 10. 探索できるその他のデータセット
シカゴのタクシー運賃を予測するなど、他のデータセットでモデルの構築を試してみる場合は、bigquery-public-data プロジェクトを利用できます。
- 
bigquery-public-data データセットを開くために [+ 追加] > [名前を指定してプロジェクトにスターを付ける] > [プロジェクト名を入力] をクリックし、名前として「bigquery-public-data」を入力します。
 
- 
[スターを付ける] をクリックします。 
bigquery-public-data プロジェクトが [エクスプローラ] セクションに表示されます。
お疲れさまでした
BigQuery で ML モデルを構築し、ニューヨーク市のタクシー運賃を予測できました。
次のステップと詳細情報
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 2 月 7 日
ラボの最終テスト日: 2023 年 8 月 24 日
Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。