Amazon Web Services ブログ

Amazon SageMaker Canvas で機械学習のためのデータ準備を加速する

データ準備はあらゆる機械学習 (ML) ワークフローにおいて重要なステップですが、多くの場合、面倒で時間のかかるタスクを伴います。Amazon SageMaker Canvas は、Amazon SageMaker Data Wrangler を利用した包括的なデータ準備機能をサポートするようになりました。この統合により、SageMaker Canvas はエンドツーエンドのコード不要のワークスペースをお客様に提供し、データを準備し、ML や基礎モデルを構築して使用することで、データからビジネスインサイトを得るまでの時間を短縮できます。SageMaker Canvas のビジュアルインターフェイスでは、50 を超えるデータソースからデータを簡単に見つけて集約し、300 種類を超える組み込みの分析と変換を使用してデータを探索して準備できるようになりました。また、変換と分析のパフォーマンスが向上し、自然言語インターフェイスを使用して ML 向けにデータを検索および変換することもできます。

この投稿では、SageMaker Canvasでのエンドツーエンドのモデル構築のためのデータを準備するプロセスを順を追って説明します。

ソリューション概要

今回は、金融サービス会社のデータ専門家のユースケースを想定しています。借手がローンを完済するかどうかを予測する機械学習モデルを構築するために、2つのサンプルデータセットを使用します。これは信用リスク管理に不可欠です。SageMaker Canvasのノーコード環境により、コーディングなしに、データの準備、特徴量エンジニアリング、機械学習モデルのトレーニング、デプロイまでのエンドツーエンドのワークフローを迅速に実行することができます。

前提条件

この記事の手順を実施するには、以下に記載されている前提条件を満たしていることを確認してください。
Amazon SageMaker Canvas を起動します。すでに SageMaker Canvas ユーザーである場合は、この新機能を使用できるように、一度ログアウトして再度ログインしてください。
Snowflake からデータをインポートするには、[Snowflake用のOAuthをセットアップする]の手順に従ってください。

インタラクティブデータの準備

セットアップが完了したら、インタラクティブなデータ準備を可能にするデータフローを作成できます。データフローには、データをまとめるための変換処理とリアルタイムの視覚化が組み込まれています。以下のステップを実行してください。

  1. 以下のいずれかの方法を使用して新しいデータフローを作成します。
    1. [Data Wrangler]、[Data flows] を選択し、[Create] を選択します。
    2. SageMaker Canvas データセットを選択し、[Create a data flow]を選択します。
  2. [Import data] を選択し、ドロップダウンリストから [Tabular] を選択します。
  3. Amazon Simple Storage Service (Amazon S3)、Amazon AthenaAmazon Redshift、Snowflake、Salesforce などの 50 を超えるデータコネクタを介してデータを直接インポートできます。この記事では、Snowflake から直接データをインポートする方法について説明します。

または、ローカルマシンから同じデータセットをアップロードすることもできます。データセット [loans-part-1.csv] と [loans-part-2.csv] をリンクからダウンロードして使用できます。

  1. [Import data] ページのリストから [Snowflake] を選択し、[Add connection] を選択します。
  2. 接続の名前を入力し、認証方法のドロップダウンリストから [OAuth] オプションを選択します。okta アカウント ID を入力し、[Add connection] を選択します。
  3. Okta ログイン画面にリダイレクトされるので、Okta 認証情報を入力します。認証が成功すると、データフローページにリダイレクトされます。
  4. Snowflakeデータベースからローンデータセットを参照して検索します。

2 つのローンデータセットを画面の左側から右側にドラッグアンドドロップして選択します。2 つのデータセットが結合され、赤いビックリマークの付いた結合記号が表示されます。これをクリックし、両方のデータセットの ID キーを選択します。結合タイプは Inner のままにしておきます。結果以下のスクリーンショットのようになるはずです。

  1. [Save & close] を選択します。
  2. [Create dataset] を選択します。データセットに名前を付けます。
  3. データフローページに移動すると、次のように表示されます。
  4. ローンデータをすばやく分析するには、[Get data insights]を選択し、ターゲット列に loan_status 、問題タイプに[Classification]を選択します。

生成されたデータ品質とインサイトのレポートは、主要な統計、視覚化、および機能の重要性分析を提供します。

  1. データ品質の問題と不均衡なクラスに関する警告を確認して、データセットを理解し、改善してください。

このユースケースのデータセットでは、「クイックモデルスコアが非常に低い」という警告が優先度が高く、マイノリティクラス(課金対象および現行)に対するモデルの有効性が非常に低いことが予想されます。これは、データをクリーンアップしてバランスを取る必要があることを示しています。データインサイトレポートの詳細については、Canvas のドキュメントを参照してください。

SageMaker Data Wrangler によって強化された 300 種類以上の組み込み変換処理を備えた SageMaker Canvas を使用すると、ローンデータをすばやく整理できます。[Add step]をクリックして、適切なトランスフォーメーションを参照または検索できます。このデータセットでは、[Drop missing] と [Handle outliers] を使用してデータを消去し、次に [One-hot encode] と [Vectorize text] を適用して ML 用の機能を作成します。

Chat for Data Prep は、リクエストをわかりやすい英語で説明することで直感的なデータ分析を可能にする新しい自然言語機能です。たとえば、自然なフレーズを使用して、ローンデータの統計や特徴相関分析を行うことができます。SageMaker Canvas は会話形式のインタラクションを通じてアクションを理解して実行し、データ準備を次のレベルに引き上げます。

チャットを使用してデータ準備を行い、組み込みの変換処理を使用してローンデータのバランスを取ることができます。

  • まず、以下の指示を入力します。replace “charged off” and “current” in loan_status with “default”

Chat for Data Prep は、2 つの少数派クラスを 1 つのデフォルトクラスにマージするコードを生成します。

  1. 組み込みの SMOTE 変換関数を選択して、デフォルトクラスの合成データを生成します。

これで、バランスの取れたターゲット列ができました。

(訳者追記:上記の SageMaker Canvas UI では、Amazon SageMaker Canvas に統合された Amazon SageMaker Data Wrangler を利用してデータの変換処理を行います。またチャットの質問は日本語にも対応しております。以下に日本語で同様の内容をチャットに指定する場合のスクリーンショットを添付します。)

(訳者追記:ここまで)

  1. ローンデータをクリーニングして処理したら、データ品質およびインサイトのレポートを再生成して改善点を確認します。

優先度の高い警告が消え、データ品質が向上したことを示しています。必要に応じてさらに変換を追加して、モデルトレーニングのデータ品質を高めることができます。

データ処理のスケーリングと自動化

データ準備を自動化するには、ワークフロー全体を分散型Sparkジョブとして実行またはスケジュールして、データセット全体または新しいデータセットを大規模に処理できます。

  1. データフロー内に Amazon S3 送信先ノードを追加します。
  2. [Create job] を選択して SageMaker Processing ジョブを起動します。
  3. Processing ジョブを設定し、[Create] を選択します。これにより、フローをサンプリングせずに数百 GB のデータでジョブが実行できるようになります。

データフローをエンドツーエンドの MLOps パイプラインに組み込んで、ML ライフサイクルを自動化できます。データフローは、SageMaker パイプラインのデータ処理ステップ、または SageMaker inference パイプラインをデプロイ処理として、SageMaker Studio ノートブックに設定できます。これにより、データ準備から SageMaker のトレーニング、ホスティングまでのフローを自動化できます。

SageMaker Canvasでモデルを構築しデプロイする

データを準備したら、最終的なデータセットを SageMaker Canvas にシームレスに取り込み、ローン支払い予測モデルの構築、トレーニング、デプロイを行うことができます。

  1. データフローの最後のノードまたはノードペインで [Create model] を選択します。

これにより、データセットがエクスポートされ、ガイド付きモデル作成ワークフローが開始されます。

  1. エクスポートされたデータセットに名前を付け、[Export] を選択します。
  2. 通知バーから [Create model] を選択します。
  3. モデルに名前を付け、[Predictive analysis] を選択し、[Create] を選択します。

これにより、モデル構築ページにリダイレクトされます。

  1. SageMaker Canvas のモデル構築作業を続行するには、ターゲット列とモデルタイプを選択し、次に [Quick build] または [Standard build] を選択します。

モデル構築方法の詳細については、モデルの構築を参照してください。

トレーニングが完了したら、モデルを使用して新しいデータを予測したり、展開したりできます。SageMaker Canvas からモデルをデプロイする方法の詳細については、「Amazon SageMaker Canvas で構築された ML モデルを Amazon SageMaker リアルタイムエンドポイントにデプロイする」を参照してください。

まとめ

この投稿では、SageMaker Data Wrangler を活用して、ローン支払いを予測するためのデータを準備する金融データプロフェッショナルの役割を引き受け、SageMaker Canvas のエンドツーエンド機能を紹介しました。インタラクティブなデータ準備により、ローンデータを迅速にクリーニング、変換、分析して、有益な機能を設計することができました。SageMaker Canvas を使うことで、コーディングの複雑さが解消され、質の高いトレーニングデータセットを迅速に作成できるようになりました。この加速されたワークフローは、ビジネスに影響を与える高性能な ML モデルの構築、トレーニング、展開に直接つながります。SageMaker Canvas の包括的なデータ準備と、データからインサイトまでの統一されたエクスペリエンスにより、ML の成果を向上させることができます。データからビジネスインサイトを得るまでの時間を短縮する方法の詳細については、「SageMaker Canvas Immersion Day」と「AWS ユーザーガイド」を参照してください。

翻訳は Solution Architect の Masanari Ikuta が担当しました。原文はこちらです。

著者について

Dr. Changsha Ma は AWS の AI/ML スペシャリストです。彼女はコンピューターサイエンスの博士号、教育心理学の修士号を持つ技術者であり、データサイエンスと AI/ML の独立系コンサルティングで長年の経験を積んでいます。彼女は機械と人間の知能のための方法論的アプローチの研究に情熱を注いでいます。仕事以外では、ハイキング、料理、食べ物狩り、友人や家族と過ごす時間が大好きです。

 

 Ajjay Govindaram は AWS のシニアソリューションアーキテクトです。複雑なビジネス上の問題を解決するために AI/ML を利用している戦略的顧客と仕事をしています。彼の経験は、中規模から大規模のAI/MLアプリケーション導入の技術的な方向性や設計支援を提供した経験があります。彼の知識は、アプリケーションアーキテクチャからビッグデータ、分析、機械学習まで多岐にわたります。彼は休憩しながら音楽を聴いたり、アウトドアを体験したり、愛する人と時間を過ごしたりすることを楽しんでいます。

 

 Huong Nguyen は AWS のシニアプロダクトマネージャーです。SageMaker Canvas と SageMaker データラングラーの機械学習データ準備を率いており、15 年にわたり顧客中心のデータ主導型の製品を構築してきた経験があります。