概要
学習内容
このガイドでは、以下のことを行います。
- データセットのインポート
- 分類のためのターゲット変数を選択する
- データセットを視覚的に検査する
- SageMaker Canvas のクイックビルド機能で機械学習モデルを構築する
- モデルの特徴とメトリクスを理解する
- 一括予測や単一予測を生成、理解する
前提条件
本ガイドを開始する前に、以下のものが必要です。
- AWS アカウント: まだお持ちでない場合は、環境の設定入門ガイドに従って簡単な概要を確認してください。
AWS の使用経験
初心者
所要時間
20 分
完了までのコスト
このチュートリアルにかかるコストの見積もりは、SageMaker Canvas の料金を参照してください。
次のことが求められます
AWS アカウントにログインしている必要があります。
使用するサービス
Amazon SageMaker Canvas
最終更新日
2022 年 6 月 28 日
ユースケース
このチュートリアルでは、出荷の到着予定時刻 (ETA) を予測できる機械学習モデルを構築します (日数で測定)。お客様は、推定時間、出荷、優先順位、キャリア、および配送元を含む、配送品の完全な出荷データを含むデータセットを使用します。
ステップ 1: Amazon SageMaker Studio ドメインを設定する
AWS アカウントは、1 つの AWS リージョンにつき 1 つの SageMaker Studio ドメインのみを持つことができます。米国東部 (バージニア北部) リージョンに SageMaker Studio ドメインを既にお持ちの場合は、SageMaker Studio 設定ガイドに従って必要な AWS IAM ポリシーを SageMaker Studio アカウントにアタッチし、ステップ 1 をスキップして直接ステップ 2 に進みます。
既存の SageMaker Studio ドメインがない場合は、ステップ 1 に進み、SageMaker Studio ドメインを作成し、このチュートリアルの残りの部分に必要なアクセス許可を追加する AWS CloudFormation テンプレートを実行します。
AWS CloudFormation スタックリンクを選択します。このリンクから AWS CloudFormation コンソールが開き、SageMaker Studio ドメインと studio-userというユーザーが作成されます。また、SageMaker Studio アカウントに必要なアクセス許可を追加します。CloudFormation コンソールで、右上に表示される [リージョン] が [米国東部 (バージニア北部)] であることを確認します。[スタック名] は [CFN-SM-IM-Lambda-Catalog] とし、変更しないようにします。このスタックは、すべてのリソースを作成するのに 10 分ほどかかります。
このスタックは、アカウントに既にパブリック VPC が設定されていることを想定しています。パブリック VPC がない場合、パブリック VPC の作成方法については、単一のパブリックサブネットを持つ VPC を参照してください。
[I acknowledge that AWS CloudFormation might create IAM resources] (私は、AWS CloudFormation が IAM リソースを作成する可能性があることを認めます) を選択し、[Create stack] (スタックの作成) を選択します。
[CloudFormation] ペインで、[スタック] を選択します。スタックが作成されるまで 10 分程度かかります。スタックが作成されると、スタックのステータスが [CREATE_IN_PROGRESS] から [CREATE_COMPLETE] に変更されるはずです。
ステップ 2: SageMaker Canvas にログインし、データセットを Amazon S3 バケットにアップロードする
AWS コンソールの検索バーに [SageMaker Canvas] と入力し、SageMaker Canvas にアクセスします。
左ペインのコントロールパネルから [Canvas] を選択し、右上のリージョンドロップダウンリストから [米国東部 (バージニア北部)] を選択します。
- SageMaker Canvas ページで、[Launch SageMaker Canvas] (SageMaker Canvas を起動する) を選択します。
- コントロールパネルページで、studio-user の横にある [Launch app] (アプリケーションを起動) ドロップダウンリストから [Canvas] を選択します。
- SageMaker Canvas [アプリケーションの作成] 画面が表示されます。アプリケーションのロードに数分かかります。
US-East 1 で初めて SageMaker を使用する場合、SageMaker Canvas は次のパターンを使用する名前で Amazon S3 バケットを作成します: sagemaker-<your-Region>-<your-account-id>。チュートリアルの残りの部分を進める前に、以下のデータセットをダウンロードし、ローカルコンピュータに保存してください。その後、SageMaker Canvas がお客様に作成したデフォルトの S3 バケットにデータセットをアップロードします。
AWS コンソールの検索バーで、[S3] と入力し、[S3] を選択します。
S3 コンソールが開いたら、[バケット] セクションの下に SageMaker Canvas が作成したデフォルトのバケットが表示されます。sagemaker-<your-Region>-<your-account-id> という名前のバケットを選択し、次のページで [アップロード] を選択します。
[アップロード] のページで、[ファイルの追加] を選択し、前のステップでダウンロードした 2 つのデータセットを選択します。ページの一番下までスクロールして、[アップロード] を選択します。SageMaker Canvas は、モデルを構築する前にこれらのファイルにアクセスします。
ステップ 3: モデルを自動構築するための SageMaker Canvas のセットアップ
SageMaker Canvas にデータをインポートし、視覚検査とモデル構築を行います。
SageMaker Canvas にデータセットをインポートします。
- SageMaker Canvas インターフェイスで、左ペインの [データセット] を選択し、[+ インポート] を選択します。
- 前のステップでデータセットをアップロードした sagemaker-<your-Region>-<your-account-id> という名前の Amazon S3 バケットを選択します。左側にあるチェックボックスを選択して、[shipping_logs.csv] と [product_descriptions.csv] のデータセットを選択します。ページの下部に 2 つの新しいボタンが表示されます。[Preview all] (すべてプレビュー) と [Import data] (データのインポート) です。[Preview all] (すべてプレビュー) を選択します。これにより、データセットの 100 行分のプレビューを確認することができます。
- データセットを確認したら、[Import data] (データのインポート) を選択して、SageMaker Canvas にデータセットをインポートします。
SageMaker Canvas ページの [データセット] セクションに、インポートした 2 つのデータセットがあります。[データの結合] を選択します。
[データセットの結合] ページで、2 つのデータセットを左パネルから右ペインにドラッグします。2 つのデータセットの間にある結合アイコンを選択します。結合の詳細を示すポップアップが表示されます。結合タイプが [Inner] (インナー) で、結合列が [ProductId] (プロダクト ID) であることを確認します。[保存して閉じる] を選択してから、[Import data] (データのインポート) を選択します。
- インポートデータダイアログボックスで、インポートデータセット名フィールドに [ConsolidatedShippingData] という名前を入力し、[Import data] (データのインポート) を選択します。
ステップ 4: 機械学習モデルの構築、トレーニング、および分析
ターゲット変数を設定し、データのプロパティを視覚的に検査し、モデル構築プロセスを開始します。
SageMaker Canvas のユーザーインターフェイスで、[モデル] を選択し、[+ 新規モデル] を選択します。[新しいモデルの作成] ダイアログボックスで、モデル名フィールドに [ShippingForecast] と入力し、[作成] を選択します。
モデルビューページは、モデルを構築して予測を得るためのステップを表す 4 つのタブで構成されています。タブは以下の通りです。
- 選択 - 入力データを設定します。
- 構築 - 機械学習モデルを構築します。
- 分析 - モデルの出力と特徴を分析します。
- 予測 - 一括または単一のサンプルで予測を実行します。
[選択] タブで、前のステップで作成した [ConsolidatedShippingData] データセットのラジオボタンを選択します。このデータセットには、16 列と 10,000 行が含まれています。また、データセットの形状やサイズに関する高レベルな説明も含まれています。[データセットの選択] を選択します。
データセットを選択すると、SageMaker Canvas は自動的に [構築] フェーズに移行します。このタブで、ターゲット列を選択します。この例では [ActualShippingDays] を選択します。この列は、過去の商品到着までの所要日数を含んでいるので、ターゲット列として使用するのに適しています。
- ターゲット列を選択すると、SageMaker Canvas は自動的に問題タイプを推論しようとします。顧客が商品を受け取るまでにかかる日数ついて興味があるので、これは回帰または数値予測問題です。回帰は、従属するターゲット変数の値を、それと相関する 1 つまたは複数の他の変数または属性に基づいて推定します。この場合、SageMaker Canvas は当初、データセットに日付を含む列を検出したため、このユースケースを [Time series forecasting type] (時系列予測タイプ) の問題として予測する可能性があります。しかし、ページ中央の [タイプ変更] リンクで問題タイプを手動で選択することで、[Numeric model type] (数値モデルタイプ) に変更することができます。
- [XShippingDistance] と [YShippingDistance] の列のターゲットとの相関は無視できることに注意してください。
- ターゲットとの相関が無視できるような特微量は、手元の予測タスクにとって十分な情報ではなく、[XShippingDistance]、[YShippingDistance]、[ProductID] (プロダクト ID)、[OrderID] (オーダー ID) 列はプライマリキーであり、価値のある情報を含んでいないと考えられるため、これらの列を削除することができます。チェックボックスの選択を解除することができます。
- 垂直バーのアイコンを選択すると、列の分布を検査することができます。これは、データの不均衡や潜在的なバイアスを強調するのに非常に有効です。
このチュートリアルでは、モデル構築を開始するために [クイックビルド] を選択します。このプロセスは、5 分以内に完了します。
モデル構築が完了すると、SageMaker Canvas は自動的に [分析] タブに切り替わり、クイックトレーニングの結果が表示されます。クイックビルドで構築した SageMaker Canvas のモデルは、出荷日数を実際の値から +/-1.2333 の範囲で予測することができます。機械学習では、モデルをトレーニングさせる過程で確率的な要素が入り、構築によって結果が異なることがあります。そのため、表示されるメトリクスの正確なパフォーマンスは異なる可能性があります。
SageMaker Canvas の [概要] タブには、列インパクトや、ターゲット列を予測する際の各入力列の推定重要度が表示されます。この例では、[ExpectedShippingDays] 列が出荷日数の予測に最も大きな影響を与えています。右パネルでは、特微量の影響の方向も見ることができます。例えば、[ExpectedShippingDays] の値が高いほど、出荷日数の予測に与える影響は大きくなります。
[Scoring] (スコアリング) タブの下に、[ActualshippingDays] の回帰直線の適合度を表すプロットが表示されます。平均して、モデル予測は [ActualShippingDays] の実際の値から +/-1.2333 の差を有しています。数値予測のスコアリングセクションには、予測を行うために使用したデータに対するモデルの予測値を示す線が表示されます。数値予測の値は、多くの場合、RMSE (二乗平均平方根誤差) 値の +/- となります。モデルが予測する値は、多くの場合、RMSE の範囲内にあります。線を囲む紫色の帯の幅は、RMSE の範囲を示しています。予測値は、この範囲に収まることが多いです。モデルパフォーマンスをより深く理解するために、右側の高度なメトリクスリンクを選択し、[高度なメトリクス] ページを表示します。
- [高度なメトリクス] ページに表示されるさまざまなメトリクスは、R2、平均絶対誤差 (MAE、Mean Absolute Error)、平均絶対パーセント誤差 (MAPE、Mean Absolute Percentage Error)、および二乗平均平方根誤差 (RMSE、Root Mean Squared Error) です。高度なメトリクスページには、モデルパフォーマンスを視覚検査するためのプロットも表示されます。1 つの画像は、残差または誤差のグラフを示します。水平線は誤差が 0 であること、または完全な予測であることを示します。青いドットは誤差です。水平線からの距離は、誤差の大きさを示しています。
- [高度なメトリクス] ページで下にスクロールすると、誤差の分布と、モデルの MAE と RMSE に対する誤差の広がりを示す誤差密度プロットが表示されます。正規分布に似た形状の誤差密度は、良好なモデルパフォーマンスを示しています。
ステップ 5: モデル予測の生成
回帰モデルができたので、そのモデルを使用して予測を実行するか、このモデルの新しいバージョンを作成してスタンダードビルドプロセスでトレーニングすることができます。このステップでは、SageMaker Canvas を使用して、単一または一括のデータセットに対して予測を生成します。
予測の生成を開始するには、[予測] タブを選択します。
- [分析] ページの下部にある [予測] ボタンを選択するか、[予測] タブを選択します。[予測] ページでは、[バッチ予測] が既に選択されています。[データセットの選択] を選択し、[ConsolidatedShippingData] データセットを選択します。実際の機械学習ワークフローでは、このデータセットはトレーニングデータセットとは別にする必要があります。しかし、簡素化のため、SageMaker Canvas がどのように予測を生成するかを示すために、同じデータセットを使用します。[予測の生成] を選択します。
- 数秒後、予測が完了します。オプションアイコンを選択し、[プレビュー] を選択すると、予測データセット名またはステータスにカーソルを合わせて予測のプレビューを見ることができます。また、[ダウンロード] を選択すると、完全な出力を含む CSV ファイルをダウンロードすることができます。SageMaker Canvas は、データの各行に対して予測を返します。このチュートリアルでは、最も重要度の高い特徴は [ExpectedShippingDays] です。また、視覚的に比較できるように、予測の横に表示されます。
- [予測] ページでは、[単一予測] を選択することで、単一のサンプルに対して予測を生成することができます。SageMaker Canvas は、モデルで使用される各入力変数の値を手動で入力することができるインターフェイスを提供します。このタイプの分析は、1 つまたは複数の変数値が増減したときに予測がどのように変化するかを知りたい What-if シナリオに最適です。 これは、現在のサンプル予測に対して最も高い影響力を持つ列を示します。
このチュートリアルの範囲では、スタンダードモデルはカバーされていません。しかし、このモードでのトレーニングは、このチュートリアルで説明したステップと似ています。
まず、[ShippingForecastStandardModel] など、モデルに名前を付けることから始めます。また、[構築] タブでは、クイックモデルの代わりに [スタンダートモデル] を選択することができます。そこから、残りのステップに進みます。スタンダードビルドモードは、SageMaker Studio を介してデータサイエンティストとトレーニング済みモデルを共有できる追加機能を提供する点で有益です。これにより、コラボレーション、クイックモデルの改良、反復が可能になります。モデルのトレーニングが完了すると、[分析] タブで共有オプションが利用できます。
ステップ 6: AWS リソースをクリーンアップする
意図しない料金が発生しないように、使用しなくなったリソースは削除することがベストプラクティスです。
S3 コンソールに移動し、[バケット] メニューオプションを選択します。
テストバケットからテストオブジェクトを削除します。このチュートリアルのために作業しているバケットの名前を選択します。テストオブジェクト名の左側にあるチェックボックスにチェックマークを入れ、[削除] ボタンを選択します。[Delete objects] (オブジェクトの削除) ページで、削除するオブジェクトが正しく選択されていることを確認し、[Permanently delete objects] (オブジェクトの完全削除) 確認ボックスに [permanently delete] (完全に削除する) とタイプします。そして、[Delete object] (オブジェクトの削除) ボタンを選択して、次に進みます。次に、削除が成功したかどうかを示すバナーが表示されます。
SageMaker Canvas のメインページで、[モデル] を選択します。右ペインに、構築したモデルが表示されます。[表示] オプションの右側にある垂直の楕円を選択し、[モデルの削除] を選択します。
SageMaker Studio コンソールで、[studio-user] を選択し、[Apps] (アプリケーション) の下に表示されている各アプリケーションで [アプリケーションの削除] を選択します。画面上のプロンプトに従って、削除の操作を確認します。ステータスが [削除] と表示されるまで待ちます。
ステップ 1 で既存の SageMaker Studio ドメインを使用した場合は、ステップ 6 の残りをスキップして、結論のセクションに直接進んでください。
ステップ 1 で CloudFormation テンプレートを実行して新しい SageMaker Studio ドメインを作成した場合は、次のステップに進み、CloudFormation テンプレートで作成したドメイン、ユーザー、リソースを削除してください。
CloudFormation コンソールを開くには、AWS コンソールの検索バーに [CloudFormation] と入力し、検索結果から [CloudFormation] を選択します。
[CloudFormation] ペインで、[スタック] を選択します。ステータスドロップダウンリストから、[アクティブ] を選択します。スタック名で、[CFN-SM-IM-Lambda-Catalog] を選択し、スタックの詳細ページを開きます。
CFN-SM-IM-Lambda-Catalog スタックの詳細ページで、[削除] を選択して、ステップ 1 で作成したリソースと一緒にスタックを削除します。
まとめ
おめでとうございます。 これで、コードを書かずに機械学習の予測を生成するチュートリアルは終了です。
Amazon SageMaker Canvas を使用して、Amazon S3 から機械学習のためのデータセットをインポートして準備し、ターゲット変数を選択し、クイックビルドモードを使用して機械学習モデルを構築し、視覚的インターフェイスを使用することに成功しました。
次のステップ
機械学習モデルをトレーニングする
機械学習のためのトレーニングデータにラベル付けをする