

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# チュートリアル: SageMaker Canvas でエンドツーエンドの機械学習ワークフローを構築する
<a name="canvas-end-to-end-machine-learning-workflow"></a>

このチュートリアルでは、Amazon SageMaker Canvas を使用したエンドツーエンドの機械学習 (ML) ワークフローについて説明します。SageMaker Canvas は、データの準備や ML モデルのトレーニングとデプロイに使用できる視覚的なノーコードインターフェイスです。このチュートリアルでは、NYC タクシーデータセットを使用して、特定のタクシー利用の料金を予測するモデルをトレーニングします。データ品質の評価やデータの問題への対応、トレーニングセットとテストセットへのデータの分割、モデルのトレーニングと評価、予測の作成、トレーニング済みモデルのデプロイなど、主要な ML タスクをすべて SageMaker Canvas アプリケーション内で実際に体験することができます。

**重要**  
このチュートリアルでは、ユーザーまたは管理者が AWS アカウントを作成していることを前提としています。 AWS アカウントの作成の詳細については、[「開始方法: 初めての AWS ユーザーですか?](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html)」を参照してください。

## 設定
<a name="canvas-tutorial-setting-up"></a>

Amazon SageMaker AI ドメインは、すべての Amazon SageMaker AI 環境とリソースを管理するための一元化された場所です。ドメインは SageMaker AI での作業の仮想境界として機能し、機械学習 (ML) リソースの分離とアクセスコントロールを提供します。

Amazon SageMaker Canvas の使用を開始するには、ユーザーまたは管理者が SageMaker AI コンソールに移動し、Amazon SageMaker AI ドメインを作成する必要があります。ドメインには、SageMaker Canvas を実行するために必要なストレージリソースとコンピューティングリソースがあります。ドメイン内で、Amazon S3 バケットにアクセスしてモデルをデプロイするように SageMaker Canvas を設定します。クイックドメインを設定し、SageMaker Canvas アプリケーションを作成するには、次の手順に従います。

**SageMaker Canvas を設定するには**

1. [SageMaker AI コンソール](https://console.aws.amazon.com/sagemaker)に移動します。

1. 左側のナビゲーションで、[SageMaker Canvas] を選択します。

1. **[SageMaker AI ドメインを作成]** をクリックします。

1. **[設定]** を選択します。ドメインの設定には数分かかる場合があります。

前述の手順では、クイックドメイン設定を使用しました。権限、統合、暗号化など、アカウント設定のあらゆる側面を制御するための高度な設定を実行できます。カスタム設定の詳細については、「[Amazon SageMaker AI のカスタムセットアップを使用する](onboard-custom.md)」を参照してください。

デフォルトでは、クイックドメイン設定を実行すると、モデルをデプロイするための権限が付与されます。標準ドメインを介してカスタム権限が設定されていて、モデルのデプロイ権限を手動で付与する必要がある場合は、「[権限の管理](canvas-deploy-model.md#canvas-deploy-model-prereqs)」を参照してください。

## フローの作成
<a name="canvas-tutorial-flow-creation"></a>

Amazon SageMaker Canvas は、コーディングや機械学習に関する広範な専門知識を必要とせずに、ユーザーが機械学習モデルを構築、トレーニング、デプロイできるようにする機械学習プラットフォームです。Amazon SageMaker Canvas の強力な機能の 1 つは、Amazon S3 などのさまざまなソースから大規模なデータセットをインポートして操作できることです。

このチュートリアルでは、NYC タクシーデータセットを使用して、Amazon SageMaker Canvas Data Wrangler データフローに従って各タクシー利用料金を予測します。次の手順では、変更されたバージョンの NYC タクシーデータセットをデータフローにインポートする手順の概要を示します。

**注記**  
処理を改善するために、SageMaker Canvas ではデータのサンプルをインポートします。デフォルトでは、50,000 行がランダムにサンプリングされます。

**NYC タクシーデータセットをインポートするには**

1. SageMaker Canvas ホームページから **[Data Wrangler]**を 選択します。

1. **[データをインポート]** を選択します。

1. **[表形式]** を選択します。

1. データソースの横にあるツールボックスを選択します。

1. ドロップダウンから **[Amazon S3]** を選択します。

1. **[S3 エンドポイントの入力]** で、`s3://amazon-sagemaker-data-wrangler-documentation-artifacts/canvas-single-file-nyc-taxi-dataset.csv` を指定します。

1. **[Go]** を選択します。

1. データセットの横にあるチェックボックスをオンにします。

1. **[データをプレビュー]** を選択します。

1. **[保存]** を選択します。

## データ品質とインサイトレポート 1 (サンプル)
<a name="canvas-tutorial-data-quality-insights-report-1"></a>

Amazon SageMaker Canvas にデータセットをインポートした後は、データのサンプルに関するデータ品質とインサイトレポートを生成できます。これを使用すると、データセットに関する貴重なインサイトを提供できます。このレポートでは、以下が行われます。
+ データセットの完全性を評価する
+ 欠損値と外れ値を特定する

このレポートは、モデルのパフォーマンスに影響を与える可能性のある他の潜在的な問題を特定できます。また、ターゲット変数に関する各機能の予測能力を評価して、解決しようとしている問題に最も関連性の高い機能を特定できます。

レポートからのインサイトを使用すると、料金を予測できます。**[利用料金]** 列をターゲット変数として指定し、問題タイプとして **[リグレッション]** を選択すると、利用料金などの連続する値の予測に対するデータセットの適合性が分析されます。このレポートでは、**year** や **hour\$1of\$1day** などの特徴量は、選択したターゲット変数に対する予測能力が低く、貴重なインサイトが得られることがわかります。

データセットからの 50,000 行のサンプルに関するデータ品質とインサイトレポートを取得するには、次の手順に従います。

**サンプルに関するレポートを取得するには**

1. **[データ型]** ノードの横にあるポップアップウィンドウから**[データインサイトを取得]** を選択します。

1. **[分析名]** に、レポートの名前を指定します。

1. **[問題のタイプ]** では、**[リグレッション]** を選択します。

1. **[ターゲット列]** では、**[利用料金]** を選択します。

1. **[作成]** を選択します。

データのサンプルに関するデータ品質とインサイトレポートを確認できます。レポートには、**year** と **hour\$1of\$1day** の特徴量がターゲット変数の **[利用料金]** を予測していないことが示されます。

ナビゲーションの上部でデータフローの名前を選択し、それに戻ります。

## 年と時間の削除
<a name="canvas-tutorial-drop-year-and-hour-of-day"></a>

レポートのインサイトを使用して **year** 列と **hour\$1of\$1day** 列を削除すると、特徴空間を合理化してモデルのパフォーマンスを向上できる場合があります。

Amazon SageMaker Canvas には、このようなデータ変換を実行するための使いやすいインターフェイスとツールが用意されています。

次の手順に従い、Amazon SageMaker Canvas の Data Wrangler ツールを使用して、NYC タクシーデータセットから **year** 列と **hour\$1of\$1day** 列を削除します。

1. **[データ型]** の横にあるアイコンを選択します。

1. **[Add step]** (ステップを追加) を選択します。

1. 検索バーに、**列のドロップ**と書き込みます。

1. **[列の管理]** を選択します。

1. **[列をドロップ]** を選択します。

1. **[ドロップする列]** では、**year** 列と **hour\$1of\$1day** 列を選択します。

1. **[プレビュー]** を選択して、変換によってデータがどのように変更されるかを表示します。

1. **[Add]** (追加) を選択します。

前述の手順を基にして、SageMaker Canvas で他の変換をすべて追加することができます。

## データ品質とインサイトレポート 2 (フルデータセット)
<a name="canvas-tutorial-data-quality-insights-report-2"></a>

前のインサイトレポートでは、NYC タクシーデータセットのサンプルを使用しました。2 番目のレポートでは、モデルのパフォーマンスに影響を与える可能性のある問題を特定するために、データセット全体の包括的な分析を実行します。

以下の手順を使用して、データ品質とインサイトレポートをデータセット全体に対して作成します。

**データセット全体のレポートを取得するには**

1. **[列のドロップ]** ノードの横にあるアイコンを選択します。

1. **[データインサイトを取得する]** を選択します。

1. **[分析名]** に、レポートの名前を指定します。

1. **[問題のタイプ]** では、**[リグレッション]** を選択します。

1. **[ターゲット列]** では、**[利用料金]** を選択します。

1. **[データサイズ]** では、**[完全なデータセット]** を選択します。

1. **[作成]** を選択します。

インサイトレポートの画像を次に示します。

![\[重複した行、歪んだターゲット、非常に低いクイックモデルスコアが insightsP として一覧表示されています\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/canvas-tutorial-dqi-insights.png)


これは、次の問題を示しています。
+ 重複行
+ 歪んだターゲット

重複行は、データの漏洩につながる可能性があります。この場合、トレーニングとテスト中にモデルが同じデータに公開されます。これらは過度に楽観的なパフォーマンスメトリクスにつながる可能性があります。重複行を削除すると、モデルは一意のインスタンスでトレーニングされるため、データ漏洩のリスクが軽減され、モデルの定型化能力が向上します。

この場合、ターゲット変数の分布が歪んでいると、**[利用料金]** 列が不均衡なクラスを引き起こす可能性があり、モデルが多数派クラスに偏る可能性があります。これにより、少数クラスのパフォーマンスが低下することがあります。これは、まれなインスタンスや少数のインスタンスを正確に予測することが重要なシナリオでは特に問題になります。

## データ品質問題に対応する
<a name="canvas-tutorial-addressing-data-quality-issues"></a>

これらの問題に対処し、モデリング用のデータセットを準備するには、次の変換を検索して適用します。

1. **[行の管理]** 変換を使用して重複を削除します。

1. **[堅牢な標準偏差の数値外れ値]** を使用して、**[利用料金]** 列の**外れ値を処理**します。

1. **[標準偏差の数値外れ値]** を使用して、**[トリップ距離]** 列と **[トリップ期間]** 列の**外れ値を処理**します。

1. **[カテゴリ別にエンコードする]** を使用して、**[レートコード ID]**、**[支払いタイプ]**、**[追加フラグ]**、**[通行料金フラグ]** 列を浮動小数点数としてエンコードします。

変換の適用方法がわからない場合は、「[年と時間の削除](#canvas-tutorial-drop-year-and-hour-of-day)」を参照してください。

これらのデータ品質問題に対処し、適切な変換を適用することで、データセットのモデリングへの適合性を向上させることができます。

## データ品質とクイックモデルの精度を検証する
<a name="canvas-tutorial-verifying-data-quality-and-quick-model-accuracy"></a>

重複行の削除など、データ品質の問題に対応するために変換を適用した後に、最終的なデータ品質とインサイトレポートを作成します。このレポートは、適用された変換が問題を解決し、データセットがモデリングに適した状態になったことを確認するのに役立ちます。

最終的なデータ品質とインサイトレポートでは、大きなデータ品質問題が発生していないことを確認する必要があります。レポートは、以下を示している必要があります。
+ ターゲット変数が歪まなくなっている
+ 外れ値や重複行がない

さらに、レポートでは、変換されたデータセットでトレーニングされたベースラインモデルに基づいて、クイックモデルスコアを提供する必要があります。このスコアは、モデルの潜在的な精度とパフォーマンスの初期指標として機能します。

以下の手順を使用して、データ品質とインサイトレポートを作成します。

**データ品質とインサイトレポートを作成するには**

1. **[列のドロップ]** ノードの横にあるアイコンを選択します。

1. **[データインサイトを取得する]** を選択します。

1. **[分析名]** に、レポートの名前を指定します。

1. **[問題のタイプ]** では、**[リグレッション]** を選択します。

1. **[ターゲット列]** では、**[利用料金]** を選択します。

1. **[データサイズ]** では、**[完全なデータセット]** を選択します。

1. **[作成]** を選択します。

## データをトレーニングセットとテストセットに分割する
<a name="canvas-tutorial-split-data"></a>

モデルをトレーニングし、そのパフォーマンスを評価するには、**[データの分割]** 変換を使用してデータをトレーニングセットとテストセットに分割します。

デフォルトでは、SageMaker Canvas はランダム化分割を使用しますが、次の種類の分割を使用することもできます。
+ 順序付き
+ 層別化
+ キーで分割

**[分割率]** を変更したり、分割を追加したりできます。

このチュートリアルでは、分割にデフォルト設定をすべて使用します。データセットの名前を表示するには、データセットをダブルクリックする必要があります。トレーニングデータセットには、**データセット (トレーニング)** という名前が付いています。

**[序数エンコード]** ノードの横にある **[データの分割]** 変換を適用します。

## モデルをトレーニングする
<a name="canvas-tutorial-train-model"></a>

データを分割したら、モデルをトレーニングできます。このモデルは、データのパターンから学習します。これを使用して予測を行ったり、インサイトを発見したりできます。

SageMaker Canvas には、クイックビルドと標準ビルドの両方が備わっています。標準ビルドを使用して、データに対して最もパフォーマンスの高いモデルをトレーニングします。

モデルのトレーニングを開始する前に、まずトレーニングデータセットを SageMaker Canvas データセットとしてエクスポートする必要があります。

**データセットをエクスポートするには**

1. トレーニングデータセットのノードの横にあるアイコンを選択し、**[エクスポート]** を選択します。

1. **[SageMaker Canvas データセット]** を選択します。

1. **[エクスポート]** を選択してデータセットをエクスポートします。

データセットの作成後は、作成した SageMaker Canvas データセットでモデルをトレーニングできます。モデルをトレーニングする方法については、「[数値予測カスタムモデルまたはカテゴリ予測カスタムモデルを構築する](canvas-build-model-how-to.md#canvas-build-model-numeric-categorical)」を参照してください。

## モデルを評価し、予測を行う
<a name="canvas-tutorial-evaluate-model-and-make-predictions"></a>

機械学習モデルをトレーニングした後は、そのパフォーマンスを評価して、それが要件を満たしており、見えないデータに対して優れたパフォーマンスを発揮しているかどうか確認することが重要です。Amazon SageMaker Canvasには、モデルの精度を評価し、予測を確認して、その長所と短所に関するインサイトを得るための使いやすいインターフェイスが備わっています。インサイトを使用すると、デプロイについてと、改善の余地のある領域について、情報に基づいた決定を行うことができます。

デプロイ前にモデルを評価するには、次の手順に従います。

**モデルを評価するには**

1. **[自分のモデル]** を選択します。

1. 作成したモデルを選択します。

1. **[バージョン]** で、モデルに対応するバージョンを選択します。

これで、モデル評価メトリクスを表示できるようになります。

モデルを評価した後は、新しいデータの予測を行うことができます。ここでは作成したテストデータセットを使用します。

予測にテストデータセットを使用するには、それを SageMaker Canvas データセットに変換する必要があります。SageMaker Canvas データセットは、モデルが解釈できる形式です。

以下の手順に従って、テストデータセットから SageMaker Canvas データセットを作成します。

**SageMaker Canvas データセットを作成するには**

1. **[データセット (テスト)]** データセットの横にあるラジオアイコンを選択します。

1. **[エクスポート]** を選択します。

1. **[SageMaker Canvas データセット]** を選択します。

1. **[データセット名]** に、データセットの名前を指定します。

1. **[エクスポート]** を選択します。

次の手順に従って、予測を行います。ここではまだ **[分析]** ページが表示されていることが前提となっています。

**テストデータセットで予測を行うには**

1. **[予測]** を選択します。

1. **[手動]** を選択します。

1. エクスポートしたデータセットを選択します。

1. **[予測を生成]** を選択します。

1. SageMaker Canvas が予測の生成を完了したら、データセットの右側にあるアイコンを選択します。

1. **[プレビュー]** を選択して予測をプレビューします。

## モデルをデプロイする
<a name="canvas-tutorial-deploy-a-model"></a>

モデルを評価したら、エンドポイントにデプロイできるようになります。エンドポイントにリクエストを送信すると、予測を取得できます。

次の手順に従って、モデルをデプロイします。ここではまだ **[予測]** ページが表示されていることが前提となっています。

**モデルをデプロイするには**

1. **[デプロイ]** をクリックします。

1. **[デプロイの作成]** を選択します。

1. **[デプロイ]** をクリックします。

## クリーンアップ
<a name="canvas-tutorial-cleaning-up"></a>

これでチュートリアルは完了です。追加料金が発生しないように、使用していないリソースを削除します。

作成したエンドポイントを削除するには、次の手順に従います。ここではまだ **[デプロイ]** ページが表示されていることが前提となっています。

**エンドポイントを削除するには**

1. デプロイの右側にあるラジオボタンを選択します。

1. **[デプロイを削除]** を選択します。

1. **[削除]** を選択します。

デプロイを削除したら、SageMaker Canvas 内で作成したデータセットを削除します。以下の手順に従って、データセットを削除します。

**データセットを削除するには**

1. 左側のナビゲーションで、**[データセット]** を選択します。

1. 分析したデータセットと、予測に使用した合成データセットを選択します。

1. **[削除]** を選択します。

追加料金が発生しないように、SageMaker Canvas からログアウトする必要があります。詳細については、「[Amazon SageMaker Canvas からのログアウト](canvas-log-out.md)」を参照してください。