機械学習の前提知識なしでAmazon SageMaker Canvasを試してみた

2022.09.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部 IoT事業部の若槻です。

前回はSageMakerノートブックインスタンスを使って、Amazon SageMakerによる機械学習を試してみました。

しかし私は機械学習に関する前提知識が無く、慣れない用語やコマンドの意味が手順の中で頻出し逐一調べながら進めたため時間が掛かってしまいました。幸いPythonの利用経験はあったためまだマシな方だったかも知れませんが、コーディング知識のない方だとさらに厳しいのかもしれません。

そんな声を受けてなのか、Amazon SageMakerではSageMaker CanvasというSageMakerのプラットフォームを使用してコーディング不要で機械学習ができる機能が用意されています。

今回は、機械学習の前提知識なしの私がこちらのAmazon SageMaker Canvasを試してみました。

やってみた

SageMaker Domainの作成

Amazon SageMakerコンソールにアクセスします。

[Canvas]で[Launch SageMaker Canvas]をクリック。

はじめにセットアップを行います。SageMaker Domainを作る必要があるとのことなのでやっていきます。

Quick setup (1 min)が選択されていることを確認します。SageMakerがセットアップをやってくれるので1分で完了するそうです。助かりますね。
[User Profile]では既定の[Name]と[Default execution role]を使用します。
[Submit]をクリックしてセットアップを完了させます。

VPCとサブネットを選択します。[save and continue]をクリック。

セットアップが完了するまで待ちます。

SageMaker Domainの準備が完了したようです。3分くらい要しました。

SageMaker Canvasを使う

データセットから機械学習モデルの作成

前節の画面を更新するとユーザー一覧にデフォルトユーザーが表示されました。[Launch app > Canvas]をクリック。

Canvas上でアプリケーションの作成が開始されます。

アプリケーションの作成が完了し、Canvasのコンソールが表示されました。ウェルカムダイアログはスキップします。

早速機械学習を試してみます。データセットを1つ選択して、[Create a model]をクリック。

[Create]をクリック。

すると機械学習モデルをビルドできる画面となるのですが、選んだデータセットが500行以下のため正確な予測ができるモデルが作れないとのことです。

[Select]に戻り1000行のデータセットを選択し直します。

次は先程の注釈が出なくなりました。[Target column]で値を予測したいカラム(年齢)を選択します。

[Quick build]をクリック。

すると次のようなダイアログが表示されました。トレーニングに使用するデータを事前にバリデーションする必要があるようです。[Validate your data]をクリック。

問題ないようです。再度[Quick build]をクリック。

ビルドが開始されます。2分から15分ほど要するようです。

2分ほどでビルドが完了しました。ここでCanvasでどれくらいかんたんにモデルを作れたかアンケートが聞かれました。差し支えなければ回答してあげましょう。

モデルステータスは28.5%とのことです。つまりこのモデルは28.5%の確率で正しい年齢を予測できるということです。

今回使用したデータセットは糖尿病患者の再入院データですが、データから患者の年齢を予測するモデルを作ることが難しかったようですね。

Column impactで年齢の予測に各カラムがどれくらい影響があるか確認できます。一番影響が大きいのはnumber_diagnoses(診断数)のようで、グラフは逆比例となっています。診断数が多い患者ほど年齢が高い傾向にあるということでしょうか。

機械学習モデルから予測の実施

次に[Predict]をクリック。こちらからは作成したモデルを使用した予測を実施できるようです。

[Select dataset]をクリック。

データセット(モデル作成に使用したものと同じ)を選択して[Generate predictions]をクリック。

予測の生成が始まりました。

データセットがReadyとなりました。[Preview]をクリック。

すると各レコードに対する予測年齢とその確率が確認できます。パッと見であまり高い予測結果ではないようです。

今回は正確性の高いモデルは作れませんでしが、実務ではデータセットを増やしたり予測対象のカラムを色々と変えてみたりして正確性の高いモデルを作る作業を行っていくことになるかと思います。

おわりに

機械学習の前提知識なしでAmazon SageMaker Canvasを試してみました。

SageMaker Domainの作成で思いの外インフラレイヤーの設定が出てきて驚かされましたが、そこまでは管理者が行う設定のようで、一般ユーザーは作成済みのユーザーを使ってCanvasのコンソールにアクセスしSageMakerの機能をGUIから利用するようだったので安心しました。

前回のエントリでノートブックインスタンスを利用してモデルの作成や予測を行った際に比べて、非常にとっつきやすかったです。もうちょっと触ってみて、両者の使い分けのラインを見極められたらと思います。

参考

以上