チェックポイント
Calculate trips taken by Yellow taxi in each month of 2015
/ 10
Calculate average speed of Yellow taxi trips in 2015
/ 10
Test whether fields are good inputs to your fare forecasting model
/ 20
Create a BigQuery dataset to store models
/ 10
Create a taxifare model
/ 20
Evaluate classification model performance
/ 10
Predict taxi fare amount
/ 20
BigQuery ML 予測モデルによるタクシー運賃の予測
GSP246
概要
BigQuery は、Google が低料金で提供する NoOps のフルマネージド分析データベースです。インフラストラクチャを所有して管理したりデータベース管理者を配置したりすることなく、テラバイト単位の大規模なデータをクエリできます。
BigQuery ML BQML を使用すれば、データ アナリストは最小限のコーディングで機械学習モデルを使用して作成、トレーニング、評価、予測が可能になります。
このラボでは、BigQuery パブリック データセットで利用できる、ニューヨーク市の何百万件に及ぶイエロー タクシーの賃走データを探索します。次に、BigQuery 内に機械学習モデルを作成して、モデル入力に基づいてタクシーの運賃を予測します。最後に、モデルのパフォーマンスを評価し、それを使用し予測を行います。
目標
このラボでは、次のタスクの実行方法について学びます。
- BigQuery を使用して一般公開データセットを見つける。
- タクシーの一般公開データセットをクエリし、探索する。
- バッチ予測に使用するトレーニングと評価のデータセットを作成する。
- 予測(線形回帰)モデルを BQML に作成する。
- 機械学習モデルの性能を評価する。
必要なもの
- Google Cloud プロジェクト
- Google Chrome や Mozilla Firefox などのブラウザ
環境の設定
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
この Qwiklabs ハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
必要なもの
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、ラボでは使用しないでください。
注: Chrome OS デバイスを使用している場合は、シークレット ウィンドウを開いてこのラボを実行してください。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。
-
[ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。
重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後このタブで Cloud Console が開きます。
BigQuery コンソールを開く
- Google Cloud コンソールで、ナビゲーション メニュー > [BigQuery] を選択します。
[Cloud コンソールの BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。
- [完了] をクリックします。
BigQuery コンソールが開きます。
ニューヨーク市のタクシーデータを探索する
質問: 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 年のイエロー タクシーの平均速度は?
前のクエリを以下に置き換え、[実行] をクリックします。
#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 時は交通量が少ないはずなので、これは直感的に理解できます。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
予測対象を特定する
次に、機械学習モデルを BigQuery に作成し、過去の賃走データセットに基づいてニューヨーク市のタクシー運賃を予測します。乗車前に運賃を予測できれば、乗客とタクシー会社の双方が、より効率的に乗車・配車の計画を立てられるようになります。
特徴を選択し、トレーニング データセットを作成する
ニューヨーク市のイエロー タクシーのデータセットは、市が提供する一般公開データセットです。これは BigQuery に読み込まれ、自由に探索できるようになっています。フィールドの全一覧をこちらで確認してから、データセットをプレビューし、機械学習モデルが過去のタクシー賃走と運賃の関係を理解するのに役立つ特徴を見つけます。
以下のフィールドが運賃予測モデルに適した入力であるかどうかをテストします。
- 通行料
- 運賃
- 時間帯
- 乗車場所
- 降車場所
- 乗客の人数
クエリを以下に置き換えます。
#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
から作成しています。チップは任意であるため、モデルでは無視できます。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
モデルを格納する BigQuery データセットを作成する
このセクションでは、新しい BigQuery データセットを作成します。このデータセットに ML モデルを格納します。
-
左側の [リソース] パネルで、Qwiklabs のプロジェクト ID を選択します。
-
次に、プロジェクト ID の横にある [アクションの表示] アイコンをクリックし、[データセットの作成] を選択します。
-
[データセットを作成] ダイアログに、次のように入力します。
- [データセット ID] に「taxi」と入力します。
- その他の値はデフォルトのままにします。
-
[データセットを作成] をクリックします。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
BQML モデルタイプを選択し、オプションを指定する
最初の特徴を選択したので、最初の ML モデルを BigQuery に作成する準備ができました。
次のモデルタイプから選択できます。
- 予測: 線形回帰による、翌月の売上などの数値の予測(linear_reg)。
- 分類: ロジスティック回帰による、迷惑メールの分類などのバイナリ分類またはマルチクラス分類(logistic_reg)。
- クラスタリング: 原因分析のために教師なし学習を使用する場合に利用できる、K 平均法クラスタリング(kmeans)。
次のクエリを入力して、モデルを作成し、モデル オプションを指定します。
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 という名前の新しいモデルを作成します」というメッセージが表示されます。これは、モデルが正常にトレーニングされたことを示します。
タクシーのデータセット内に taxifare_model があることを確認します。
次に、未知の評価データに対するモデルの性能を評価します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
分類モデルの性能を評価する
性能の評価基準を選択する
線形回帰モデルには、二乗平均平方根誤差(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 になります。
この損失指標で、このモデルを本番環境に使用してもいいかどうかは、モデルのトレーニング開始前に設定するベンチマーク基準によって異なります。ベンチマークとは、許容できる最低レベルのモデルの性能と精度を確立するための基準です。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
タクシー運賃を予測する
次に、作成したモデルを使用して予測を行うためのクエリを作成します。以下をコピーしてクエリ [エディタ] に貼り付け、[実行] をクリックします。
#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
));
タクシー運賃に対するモデルの予測が、その賃走の実際の運賃とその他の特徴とともに表示されます。結果は以下のようになります。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが付与されます。
特徴量エンジニアリングによるモデルの強化
機械学習モデルの構築は反復的なプロセスです。初期モデルの性能を評価した後、前に戻って機能や行をプルーニングし、改善の余地がないか確認します。
トレーニング データセットのフィルタリング
タクシー運賃の一般的な統計情報を表示してみましょう。以下をコピーしてクエリ [エディタ] に貼り付け、[実行] をクリックします。
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 よりも大幅に改善しています。
RSME により予測エラーの標準偏差が定義されるために、再トレーニングされた線形回帰によってモデルの精度が大幅に向上したことがわかります。
理解度を確認する
今回のラボで学習した内容の理解を深めるため、以下の選択問題を用意しました。正解を目指して頑張ってください。
探索できるその他のデータセット
シカゴのタクシー運賃を予測する場合など、他のデータセットに対してモデルを作成するには、以下のリンクを使用して bigquery-public-data プロジェクトを開始します。
https://bigquery.cloud.google.com/table/bigquery-public-data::chicago_taxi_trips.taxi_trips
お疲れさまでした
これで、ニューヨーク市のタクシー運賃を予測する ML モデルを BigQuery で構築できました。
クエストを完了する
このセルフペース ラボは、Qwiklabs の「Data Engineering」と「BigQuery for Machine Learning, Applying BQML's Classification, Regression, and Demand Forecasting for Retail Applications」」クエストの一部です。クエストとは学習パスを構成する一連のラボのことで、完了するとその成果が認められてバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、次のクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なその他の Qwiklabs のクエストもご確認ください。
次のステップと詳細情報
- BigQuery のドキュメントで BiqQuery について詳しく学習する。
- AI Platform のドキュメントで機械学習について詳しく学習する。
Google Cloud Training & Certification
Google Cloud 技術を最大限に活用できるようになります。このクラスでは、必要な技術力とベスト プラクティスを習得し、継続的に学習することができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、仮想環境など、多忙なスケジュールに対応できるオプションが用意されています。認定資格を取得することで、Google Cloud の技術のスキルと知識を証明できます。
マニュアルの最終更新日: 2021 年 8 月 31 日
ラボの最終テスト日: 2021 年 8 月 31 日
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。