Amazon Web Services ブログ

ノーコード機械学習のAmazon SageMaker Canvas が40 を超えるデータソースからデータをインポートできるようになりました

本記事は Import data from over 40 data sources for no-code machine learning with Amazon SageMaker Canvas を日本語に翻訳したものです。

データは機械学習 (ML) の要です。 ビジネスの問題を包括的に表す関連データを準備することで、ビジネスアナリストは傾向や関係性を効果的に把握し、ビジネス上の意思決定に必要な洞察を引き出すことができます。 Amazon SageMaker Canvas では、 40 を超えるデータソースからデータをインポートして、ノーコード機械学習に使用できるようになりました。 Canvasは、ビジュアルインターフェイスを備えており、機械学習の経験が無くても、またコードを1行たりとも記述しなくても、正確な ML 予測の能力をビジネスアナリストに提供します。 今回、Amazon Athena などの一般的なリレーショナルデータストアや、Salesforce、SAP OData、Google アナリティクスなどの Amazon AppFlow がサポートするサードパーティのsoftware as a service (SaaS) プラットフォームからデータをアプリ内でインポートできるようになりました。

SaaS アプリケーションやデータストレージサービスの普及により、データが複数のシステムに分散していると、ML 用の高品質なデータを収集するプロセスは複雑で時間がかかるかもしれません。例として、Salesforce の顧客データ、SAP のファイナンスデータ、Snowflake のロジスティクスデータを使用して顧客離れの分析を行う場合を想定します。 これらの個別のソースをまとめたデータセットを作成するには、各アプリケーションに個別にログインし、必要なデータを選択してローカルマシンにエクスポートし、別のツールを使用してデータを集約します。 さらに、作成されたデータセットを別の ML アプリケーションにインポートする作業も必要です。

今回のリリースにより、Canvas は 40 を超えるデータソースからのデータのインポートと集約をサポートすることで、さまざまなソースに保存されているデータを活用できるようになりました。 この機能は、Athena への新しいネイティブコネクタと AWS Glue データカタログ経由の Amazon AppFlow への新しいネイティブコネクタによって可能になりました。 Amazon AppFlow は、サードパーティの SaaS アプリケーションから Amazon Simple Storage Service (Amazon S3) にデータを安全に転送し、数回クリックするだけでGlueデータカタログを使用してデータをカタログ化できるマネージドサービスです。 データが転送されたら、Canvas からシンプルにデータソースにアクセスでき、テーブルスキーマの表示、データソース内またはデータソースをまたいだテーブル結合、Athena クエリの作成、データのプレビューとインポートが行えます。 データをインポートしたら、 Canvas の既存機能である、ML モデルの構築、データセットの各カラムがモデルに与える影響を説明するカラムインパクト分析、予測の生成などを使用できます。 Amazon AppFlow のデータ転送プロセスをスケジュールに従って自動実行することで、Canvas から常に最新のデータへアクセスできるようになります。

ソリューション概要

この記事で概説した手順では、ノーコード機械学習の Canvas にデータをインポートする 2 つの例を紹介します。 最初の例では、Athena を使用してデータをインポートする方法を示します。 2 番目の例では、Amazon AppFlow を使用してサードパーティの SaaS アプリケーションからデータをインポートする方法を紹介します。

Athena からデータをインポートする

このセクションでは、Athena から Canvas にデータをインポートして顧客セグメンテーション分析を行う例を示します。 ML分類モデルを作成して、顧客基盤を4つの異なるクラスに分類します。最終目標は、このモデルを使用して、新規顧客がどのクラスに分類されるかを予測することです。 データのインポート、モデルのトレーニング、予測の生成という3つの主要なステップに従います。 それでは始めましょう。

データをインポートする

Athena からデータをインポートするには、次の手順を実行します。

  1. Canvas コンソールのナビゲーションペインで Datasets を選択し、 Import を選択します。
  2. Data Source メニューを展開し、Athena を選択します。
  3. インポート元のデータベースとテーブルを選択します。 必要に応じて、プレビューアイコンを選択してテーブルをプレビューできます。
    次のスクリーンショットは、プレビューテーブルの例を示しています。

    この例では、顧客がどのマーケティングチャネルを通じて当社のサービスを使用したかに基づいて顧客をセグメント化します。セグメントは segmentation 列で指定されます。ここで、A は印刷メディア、B はモバイル、C は店内プロモーション、D はテレビを表すとします。
  4. テーブルデータの確認が完了したら、目的のテーブルを Drag and drop datasets to join (データセットをドラッグアンドドロップして結合) セクションにドラッグします。
  5. 必要に応じて列を選択または選択解除したり、別のテーブルを Drag and drop datasets to join セクションに別のテーブルをドラッグしてテーブルを結合したり、データスライスを指定する SQL クエリを記述したりできます。 この例では、表のすべてのデータを使用します。
  6. データをインポートするには、Import data を選択します。

    これで、データは Athena の特定のテーブルからデータセットとして Canvas にインポートされます。

モデルのトレーニング

データをインポートすると、そのデータが Datasets ページに表示されます。この章では、モデルを構築します。そのためには、以下の手順を実行してください。

  1. データセットを選択し、Create a model を選択します。
  2. Model name に、モデル名を入力します。 (今回は my_first_model とします。)
  3. Canvasでは、予測分析、画像分析、テキスト分析用のモデルを作成できます。 今回は顧客を分類したいので、Problem typePredictive analysis を選択します。
  4. 続行するには、Create を選択します。

    Build ページでは、欠損値の割合やデータの平均など、データセットに関する統計を確認できます。
  5. Target column で、列を選択します。 (今回は、segmentation を使用します)

    Canvasは、予測を生成できる2種類のモデルを提供します。 クイックビルドは、精度よりもスピードを優先し、2 ~ 15 分でモデルを作成します。 標準ビルドでは、速度よりも精度を優先し、2 ~ 4 時間でモデルが完成します。
  6. 今回は、Quick build を選択します。
  7. モデルがトレーニングされたら、モデルの精度を分析できます。
    次のモデルでは、顧客が 94.67% の確率で正しく分類されます。
  8. 各列が分類にどのように影響するかを表示することもできます。 この例では、顧客が年齢を重ねるにつれて、列が分類に与える影響は少なくなります。 新しいモデルで予測を生成するには、Predict を選択します。

予測を生成

Predict ページでは、Batch予測と単一予測の両方を生成できます。 以下の手順を実行してください。

  1. 今回は、 Single Prediction を選択して、新規顧客がどの顧客セグメンテーションになるかを確認します。
    この予測では、顧客が32歳で、職業が弁護士の場合、どのセグメンテーションになるかを把握したいと考えています。
  2. 対応する値を次の入力に置き換えます。
  3. Update を選択します。

    更新された予測が予測ウィンドウに表示されます。 この例では、32歳の弁護士はセグメントDに分類されます。

サードパーティの SaaS アプリケーションから AWS にデータをインポートする

サードパーティ SaaS アプリケーションのデータを Canvas にインポートしてノーコード機械学習を行うには、まず Amazon AppFlow 経由でアプリケーションから Amazon S3 にデータを転送する必要があります。 この例では、SAP OData から製造データを転送します。
データを転送するには、次の手順を実行してください。

  1. Amazon AppFlow コンソールで、Create flow を選択します。
  2. Flow name に名前を入力します。
  3. Next を選択します。
  4. Source name で、目的のサードパーティ SaaS アプリケーション (この例では SAP OData) を選択します。
  5. Create new connection を選択します。
  6. Connect to SAP OData ポップアップウィンドウで、認証情報を入力し、Connect を選択します。
  7. SAP OData Objectに、SAP OData 内の目的のデータを含むオブジェクトを選択します。
  8. Destination nameに、Amazon S3 を選択します。
  9. Bucket detailsに、S3 バケットの詳細を指定します。
  10. Catalog your data in the AWS Glue Data Catalog を選択します。
  11. User role に、Canvas ユーザーがデータにアクセスする際に使用する AWS Identity and Access Management (IAM) ロールを選択します。
  12. Flow trigger では、Run on demand を選択します。
    または、Run flow on schedule を選択してフロー転送を自動化することもできます。
  13. Next を選択します。
  14. フィールドをマッピングする方法を選択し、フィールドマッピングを完了します。 今回の例では、マッピング先がデータベースではないため、マッピングを指定する必要はありません。
  15. Next を選択します。
  16. 必要に応じてフィルターを追加して、転送されるデータを制限します。
  17. Next を選択します。
  18. 詳細を確認して、Create flow を選択します。

    フローが作成されると、ページの上部に緑色のリボンが表示され、フローが正常に更新されたことが示されます。
  19. Run flow を選択します。

この段階で、SAP OData から Amazon S3 へのデータ転送が正常に実行されました。

これらにより、Canvas アプリ内からデータをインポートできるようになりました。 Canvas からデータをインポートするには、この記事の前半の Data import セクションで説明したのと同じ手順に従います。 具体的には、Data import ページの Data source ドロップダウンメニューの、SAP OData を選択します。

この後は、データのクリーニング、ML モデルの構築、カラムインパクト分析、予測の生成など、既存の Canvas 機能をすべて使用することができます。

クリーンアップ

プロビジョニングされたリソースをクリーンアップするには、ナビゲーションペインで Log out を選択して Canvas アプリケーションからログアウトします。
もし直接ブラウザーを閉じてしまった場合は、必ずCanvasに戻ってきて Log out ボタンからログアウトするようにしてください。

まとめ

Canvas では、AWS Glue データカタログ経由の Athena と Amazon AppFlow のネイティブコネクタを通じて、47 のデータソースからノーコード機械学習用のデータをインポートできるようになりました。 この手順を踏むことで、Amazon AppFlow を介してデータを転送した後に、Canvas 内からデータソースへの直接アクセスと、複数のデータソースを統合的に使用することができるようになります。 データ転送のスケジュール実行により、データ更新のためのプロセスを都度手動実行する必要はありません。 このプロセスにより、Canvasアプリを離れることなく、最新のデータでデータセットを作成できます。 この機能は、Canvas が利用可能なすべての AWS リージョンで利用できます。 データのインポートを開始するには、Canvas コンソールに移動し、この記事で説明されている手順に従ってください。 さらなる詳細については、Connect to data sourcesを参照してください。


著者について

Brandon Nair は Amazon SageMaker Canvas のシニアプロダクトマネージャーです。 彼の専門的関心は、スケーラブルな機械学習サービスとアプリケーションの作成です。 仕事以外では、国立公園を探検したり、ゴルフスイングを極めたり、アドベンチャートリップを計画したりしています。

Sanjana Kambalapally は AWS SageMaker Canvas のソフトウェア開発マネージャーです。AWS SageMaker Canvas は、ノーコード機械学習アプリケーションを構築することで機械学習を民主化することを目的としています。

Xin Xu は Canvasチームのソフトウェア開発エンジニアで、ノーコード機械学習製品のデータ準備などに取り組んでいます。 余暇には、ジョギング、読書、映画鑑賞を楽しんでいます。

Volkan Unsal は Canvasチームのシニアフロントエンドエンジニアで、人工知能を人間が利用できるようにするためのノーコード機械学習の製品を開発しています。 余暇には、ランニング、読書、eスポーツ観戦、武道を楽しんでいます。

翻訳はAWSソリューションアーキテクトの矢永が担当しました。原文はこちらです。