ヤマムギ

growing hard days.

*

Amazon SageMaker Canvas Immersion Dayワークショップのエンドツーエンド機械学習の記録

   

Amazon SageMaker Canvas Immersion DayというAmazon SageMaker Canvasを試せるワークショップがあります。

その「エンドツーエンド機械学習」をやった記録です。
エンドツーエンドというだけあって、MLパイプラインをすべてSageMaker Canvasで実行するラボでした。

環境

SageMakerドメインとユーザープロファイルは、すでに構築済みで使用していたものを使いました。
ほぼセルフペースド ラボに書かれている内容と同じような環境です。

データセットの前処理

ラボに用意されている定期預金データをローカルにダウンロードしました。
定期預金データは、定期預金を紹介するキャンペーンのマーケティングに関係するデータです。
最後のy列に定期預金に加入したかどうかがyes/noの値です。
新しいデータでこのyを予測するモデルを作成します。

CanvasでData Wranglerをクリックして、[Import and prepare]でTabularを選択しました。

データソースにLocal uploadを選択して、ダウンロードした定期預金データをアップロードしました。

データプレビューが表示されましたので、[Import]をクリックしました。

まずGet data insightsをクリックしました。

Analysis type: Data quality and insights report
Analysis name: baseline
Probllemtype: Classification
Data size: Sampled dataset

上記の設定をして[Create]をクリックしました。

データ分析結果が表示されます。
ダウンロードボタンからレポートをダウンロードもできました。

警告が表示されていてわかりやすいです。
3点のMedium(中程度)の警告がありました。

0.0583%の行の重複があるようです。

monthの3月、9月、12月がレアなカテゴリーになっている。

pdaysの999という値が全体の96.3%になっている。

このままモデルの学習をした場合に、モデルの推論結果によくない影響を及ぼす可能性があるものが、警告としてピックアップされました。

データの分析が終わったので、前処理を設定します。
Data flowに戻って、Add transformを選択しました。

[Add transform]-[Manage columns]を選択しました。

Transform: Drop column
Columns to drop: emp.var.rate, cons.price.idx, cons.conf.idx, nr.employed, pdays, previous, poutcome, euribor3m

上記の設定で[Add]をクリックしました。
モデルトレーニングに不要な列を削除しました。

次に自然言語でのデータ分析と変換適用を試します。
Data flowに戻って、Chat for data prepを選択しました。

「”job” と “age” に関するボックスプロットを作成して」と入力して実行すると、ボックスプロットが表示されました。
職業別の年齢分布が表示されました。
retiredが高年齢ではあるが、いくつかのデータでは外れ値として、若い年齢のデータもあるようです。
studentは若い年齢層です。
ほかの職業はだいたい中ぐらいの年齢です。

「”age” と “duration” をそれぞれの標準偏差で割ってスケーリングして」と入力して実行すると、データを変換するためのPythonコードを生成してくれました。
[Add to steps]でデータ前処理のステップに追加しました。

モデルの学習

Data flowに戻って、Create modelを選択しました。

Dataset details: BankDataset
Model details: BankModel
Problem type: Predictive analysis
Target column: y

yがyesかnoかを予測するモデルを作成します。
[Export and create model]をクリックしました。

Buildタブに移動しました。
Targetになっているyではnoのデータが95.43%あるようです。
ここで、configure modelを選択しました。

モデルの学習時間を30分にしました。

Standard buildをクリックしました。

モデルの学習が始まりました。

モデルの評価

モデルの作成が完了すると、評価結果も表示されました。
89.597%の確率で正しく予測できるモデルになりました。
F1スコア(0-1、完璧なモデルは1)は0.603でした。
Column impactでは、予測にdurationが最も影響を与えていることがわかりました。
durationはキャンペーン電話の連絡秒数です。

Scoringタブにはサンキーダイアグラムがありました。
検証データでどのようにモデルが予測できたかを視覚化しています。

モデルがNoと予測した場合、96.06%が正解していました。
Noが正解のデータに対しては、モデルは92.052%でNoと予測しています。

Advanced meticsには混同行列があります。

適合率(Precision)-再現率(Recall)曲線もあります。

Model leaderboardでは複数の候補モデルの比較結果も表示できます。

推論の生成

PredictタブでSingle predictionを選択すると、1つの推論に対しての予測結果を確認できます。
durationが1の場合、Noとなりました。

durationを7にすると、Yesとなりました。

Batch predictionメニューもあるので、テスト用のデータセットでまとめて推論を実行できます。

デプロイ

Deployタブで[+ Create Deployment]ボタンをクリックすると、インスタンスタイプやインスタンス数を選択してエンドポイントをデプロイできます。

デプロイすると、モデル、エンドポイント設定、エンドポイントが作成されました。

右上のメニューからView Notebookを選択すると、ノートブックが確認できます。
ダウンロードして実行することもできます。

まさにエンドツーエンドの機械学習モデル作成を、ノーコードでできました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS ,

  関連記事

DS18B20センサー+Raspberry Piで取得した温度をAmazon Kinesis FirehoseからS3へ格納してAthenaでクエリーしたのをQuickSightで可視化する

JAWS DAYS 2017でやりますハンズオンの「[IoTハンズオン] Ras …

AWSクイックスタートのActive Directory Domain Services on AWS

オンプレミスに見立てたActive Directory環境がほしかったので、AW …

AWS Toolkit for Eclipseをセットアップ(2021年版)

AWS Toolkit for Eclipseをセットアップするで6年前に書いて …

RDSスナップショットをS3にエクスポートする新機能を試そうかと思った

やったこと RDSスナップショットをS3にエクスポートできる、という新機能が追加 …

RedmineをELB(ALB)でAutoScalingグループへ負荷分散

高可用なRedmineを作るためのELBの設定です。 高可用なRedmine R …

AWS Cost Anomaly Detectionでコストモニターを作成しました

[ご利用開始にあたって]を押下しました。 このあと画面を説明してくれるツアーがあ …

「Getting started with AWS Glue DataBrew」をやってみました

AWS Glue DataBrewを体験してみたくて、開発者ガイドのチュートリア …

RDSリザーブドDBインスタンスを購入しました

リザーブドインスタンス推奨事項を確認したで確認した結果、購入したほうがよさそうで …

RDS ProxyをAurora MySQLで

Lambda関数をたくさん同時実行してMySQLにアクセスしても大丈夫なようにR …

Amazon Becrock Nova Pro, Liteを校正目的で比較モードを試しました

書籍執筆の誤字脱字チェックと校正をしてもらうためにNovaを検討しています。 N …