予測を行う

これで、df_for_prediction のテストデータを使用して予測リクエストを作成する準備ができました。予測リクエストはモデルを呼び出して、df_for_prediction の各行にあるペンギンの特徴によって表されるペンギンの種類を予測します。

予測テストデータを準備する

テストデータを使用して予測を作成する前に、species 列を削除します。ペンギンの種類は予測対象であるため、予測の作成に使用されるテストデータに含められません。species 列を削除した後、データを Python のリストに変換します。predict メソッドではこれが入力となります。次のコードを実行して、データを Python のリストに変換します。

# Remove the species column
df_for_prediction.pop(LABEL_COLUMN)

# Convert data to a Python list
test_data_list = df_for_prediction.values.tolist()

(省略可)テストデータを表示する

テストデータを理解しやすくするために、次のコード行を実行してデータを表示します。

test_data_list

各行において、6 つの列のそれぞれの値は、ペンギン 1 羽の次の特徴を示します。

ペンギンの特徴
0 island - ある種類のペンギンが発見される島。島の値は、Dream0Biscoe1Torgersen2 と割り当てられています。
1 culmen_length_mm - ペンギンのくちばしの上端の長さ。
2 culmen_depth_mm - ペンギンのくちばしの高さ。
3 flipper_length_mm - ペンギンのヒレ状の翼の長さ。
4 body_mass_g - ペンギンの体重。
5 sex - ペンギンの性別。0FEMALE1MALE です。

予測リクエストを送信する

予測リクエストを作成するには、作成したテストデータの Python のリストを endpointpredict メソッドに渡します。

predict メソッドは各行の特徴を評価し、その特徴が示すペンギンの種類を予測します。予測は、次のコードを実行して作成します。返される予測には行のリストが含まれ、各行には 3 つの列(アデリー ペンギン(Pygoscelis adeliae)(列 1)、ヒゲペンギン(Pygoscelis antarctica)(列 2)、ジェンツー ペンギン(Pygoscelis papua)(列 3))があります。

# Get your predictions.
predictions = endpoint.predict(instances=test_data_list)

# View the predictions
predictions.predictions

行の各列には値が含まれ、値が大きいほど、その列で表されるペンギンの種類が正しい予測であるという信頼度が高くなります。たとえば、次のサンプル予測出力行では、モデルはサンプルのペンギンデータ行の特徴を使用して、ペンギンがアデリーペンギン(Pygoscelis adeliae)種である可能性が高いと予測しています。これは、最大値 0.732703805 が最初の列にあるためです。

[0.732703805, 0.233752429, 0.0335437432]

次のコードにある NumPy の argmax メソッドは、各行で最も大きい値を含む列を返します。最大値は、最も正しい可能性が高い予測に対応します。2 行目には、予測の配列が表示されます。

# Get the prediction for each set of input data.
species_predictions = np.argmax(predictions.predictions, axis=1)

# View the best prediction for the penguin characteristics in each row.
species_predictions

species_predictions 配列の各結果は、対応するテストデータの行の値に対応するペンギンの種類を予測します。たとえば、最初の値は 0で、これはアデリーペンギン(Pygoscelis adeliae)種に対応します。つまり、モデルは、テストデータの最初の行の特徴を持つペンギンの種類がアデリーペンギン(Pygoscelis adeliae)であると予測します。

リソースのクリーンアップ

ここまできたら、引き続きノートブックを使用して、作成したリソースやその仕組みを調べることや詳しく学ぶことができます。

リソースを削除する

準備ができたら、不要な料金が発生しないように、このチュートリアルで作成した Google Cloud リソースを削除することをおすすめします。リソースを削除する方法は 2 つあります。

  • プロジェクトを削除すると、プロジェクトに関連付けられているリソースも削除されます。詳細については、プロジェクトのシャットダウン(削除)をご覧ください。

  • トレーニング ジョブ(CustomTrainingJob オブジェクト)、モデル(Model オブジェクト)、エンドポイント(Endpoint オブジェクト)、Cloud Storage バケットを削除するコードを実行します。このオプションでは、プロジェクトと、コードを使用して明示的に削除していない、作成済みの他のリソースが保持されます。

    モデルを削除する前に、endpoint.delete メソッドに force=True を渡してモデルのデプロイを解除する必要があります。

    プロジェクトを保持し、このチュートリアルで作成したリソースのみを削除するには、ノートブックで次のコードを実行します。

import os

# Delete the training job
job.delete()

# Delete the endpoint and undeploy the model from it
endpoint.delete(force=True)

# Delete the model
model.delete()

# Delete the storage bucket and its contents
bucket.delete(force=True)

Vertex AI Workbench インスタンスを削除する

Vertex AI Workbench インスタンスは、今後の作業に使用するために保持できます。保持する場合は、費用を把握しておいてください。詳細については、Vertex AI Workbench の料金をご覧ください。

Vertex AI Workbench インスタンスを削除する場合は、次の操作を行います。

  1. Google Cloud コンソールで、Vertex AI Workbench の [インスタンス] ページに移動します。

    [インスタンス] に移動

  2. Vertex AI Workbench インスタンスを選択します。

  3. 上部のメニューで [削除] をクリックします。

  4. [インスタンスの削除] 確認ダイアログで [確認] をクリックします。削除の完了には数分かかります。