Amazon Web Services ブログ

Amazon QuickSight を使用して、機械学習で強化されたビジネスインテリジェンス分析を構築

将来が分かったらどうなるか、想像してみましょう。何人のお客様が製品を注文するかを数ヶ月前に知ることができれば、十分な準備ができます。何人の社員が組織を離れるかを数か月前に把握できれば、スタッフの定着を促進するための予防措置を講じることができます。組織が将来を知ることができれば、無限の可能性が広がります。機械学習 (ML) を活用すれば、より高い精度で将来を予測することができます。

Amazon SageMaker は、あらゆる開発者やデータサイエンティストが ML モデルを迅速に構築、トレーニング、デプロイできる機能を提供しますが、通常 ML モデルではなくビジネスインテリジェンスのダッシュボードやレポートの作成に取り組むビジネスユーザーにとっては、Amazon QuickSight が最適なサービスです。Amazon QuickSight を使用すると、ML を活用して将来を予測できます。この記事では、技術的な専門知識や ML の経験を必要とせずに、ML を使用して将来のデータポイントを予測し、データにおける異常を検出するビジネスインテリジェンス分析を行う方法について説明します。

ソリューションの概要

Amazon QuickSight ML Insights は、AWS で実証済みの ML および自然言語機能を使用して、データからより深い洞察を得るのに役立ちます。こうしたすぐに使える強力な機能により、技術や ML の経験がなくても、隠れた傾向や外れ値の発見、主要なビジネス推進要因の特定、強力な what-if 分析および予測を簡単に実行できます。ML Insights は、販売レポート、ウェブ分析、財務計画などで使用できます。集計結果に埋もれている洞察を見つけ出し、インタラクティブな what-if 分析を実行し、ビジネスの目標を達成するために必要なアクティビティを発見することができます。

この記事では、Amazon S3 から Amazon QuickSight にデータをインポートし、インポートされたデータを使用して ML に基づく分析を行います。次の図は、このアーキテクチャを示しています。

ウォークスルー

このウォークスルーでは、ニューヨーク市でのタクシーに対する将来の需要を予測する ML で強化されたビジュアルを含む Amazon QuickSight 分析を行います。また、ML を活用した洞察を生成して、データの異常も検出します。この記事では、AWS の Registry of Open Data にあるニューヨーク市タクシーおよびリムジン委員会 (TLC) の走行記録データを使用します。

このウォークスルーには、以下の手順が含まれます。

  1. データを設定して、Amazon QuickSight にインポートする
  2. ML で強化されたビジュアルを作成して、タクシーに対する将来の需要を予測する
  3. ML を活用した洞察を生成して、データセットの異常を検出する

前提条件

このウォークスルーには、以下の前提条件が必要です。

  • AWS アカウント
  • Amazon Quicksight の Enterprise エディション
  • AWS の基本的な知識

データの設定および Amazon QuickSight へのインポート

個々のユーザーとして、Amazon Quicksight を設定します。以下の手順を実行します。

  1. AWS マネジメントコンソールの [Region] リストで、米国東部 (バージニア北部) または Amazon QuickSight に対して選択したリージョンを選択します。
  2. [Analytics] の [Services] で、Amazon QuickSight を選択します。既存の Amazon QuickSight アカウントを既にお持ちの場合は、Enterprise エディションであることを確認してください。そうでない場合は、Enterprise エディションにアップグレードしてください。詳細については、Amazon QuickSight サブスクリプションを Standard エディションから Enterprise エディションにアップグレードを参照してください。既存の Amazon QuickSight アカウントをお持ちでない場合は、設定を続行し、アカウントの設定時に必ず Enterprise エディションを選択してください。詳細については、Amazon QuickSight で無料のスタンドアロンユーザーアカウントを設定を参照してください。設定が完了すると、ようこそウィザードの画面が表示されます。
  1. ようこそウィザードの画面で、[Next] を選択します。
  2. [Get Started] を選択します。

データセットをインポートする前に、SPICE 容量が少なくとも 3GB あることを確認してください。詳細については、SPICE 容量の管理を参照してください。

NYC タクシーデータセットの Amazon QuickSight へのインポート

NYC タクシーデータセットは S3 バケットにあります。S3 データを Amazon QuickSight にインポートするには、マニフェストファイルを使用します。詳細については、Amazon S3 マニフェストファイルでサポートされている形式を参照してください。このデータをインポートするには、以下の手順を実行します。

  1. 以下のコードをコピーして、新しいテキストファイルに貼り付けます。
    "fileLocations": [
            {
                "URIs": [
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-01.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-02.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-03.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-04.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-05.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-06.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-07.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-08.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-09.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-10.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-11.csv",
              "https://nyc-tlc.s3.amazonaws.com/trip data/green_tripdata_2018-12.csv"
    
                ]
            }
        ],
        "globalUploadSettings": {
            "textqualifier": "\""
        }
    }
  2. このテキストファイルを nyc-taxi.json として保存します。
  3. Amazon QuickSight コンソールで、[New analysis] を選択します。
  4. [New data set] を選択します。
  5. データソースには、S3 を選択します。
  6. [New S3 data source] の [Data source name] に、希望する名前を入力します。
  7. [Upload a manifest file] フィールドで、[Upload] を選択します。
  8. 前に作成した nyc-taxi.json ファイルを選択します。
  9. [Connect] を選択します。
    この記事で使用する S3 バケットは、パブリックデータセットを含んでいてい、一般公開されているパブリックバケットです。Amazon QuickSight のアカウントで S3 バケットを使用する場合は、バケットを一般公開しないことを強くお勧めします。その場合、Amazon QuickSight から S3 バケットにアクセスするための認証を設定する必要があります。トラブルシューティングの詳細については、Amazon S3 に接続できませんを参照してください。[Connect] を選択すると、[Finish data set creation] 画面が表示されます。
  10. [Visualize] を選択します。
  11. インポートが完了するまで待ちます。

画面の右上隅で、進行状況を確認できます。インポートが完了すると、正常にインポートされた行の数とスキップされた行の数が結果として表示されます。

ML で強化されたビジュアルの作成

データセットを Amazon QuickSight SPICE にインポートすると、分析ビジュアルの作成を開始できます。目標は、ML で強化されたビジュアルを作成して、タクシーに対する将来の需要を予測することです。詳細については、Amazon Quicksightを使用した What-If シナリオの予測と作成を参照してください。

ビジュアルを作成するには、以下の手順を実行します。

  1. [Data source details] ポップアップ画面で、[Visualize] を選択します。
  2. [field list] で、[Lpep_pickup_datetime] を選択します。
  3. [Visual types] で、最初のビジュアルを選択します。Amazon QuickSight が、選択したフィールドの数とデータタイプに基づいて、最適なビジュアルを自動的に使用します。選択したものから、Amazon Quicksight は折れ線グラフを視覚的に表示します。上記のグラフから、[Lpep_pickup_datetime] フィールドのデータクラスターの大部分は 2017 年 12 月 31 日から 2019 年 1 月 1 日までであることがわかります。2080 年 6 月までの日付範囲のデータポイントがいくつかあります。これらの値は間違っており、ML 予測に影響を与える可能性があります。データセットをクリーンアップするには、Lpep_pickup_datetime のデータを使用して間違っているデータをフィルターで除外します。この記事では、Lpep_pickup_datetime が 2018 年 1 月 1 日から 2018 年 12 月 18 日の間であるデータだけを使用します。これは、この日付範囲内のデータの量がより安定しているためです。
  4. フィルターメニューによって、Lpep_pickup_datetime を使用してフィルターを作成します。
  5. [Filter type] で、[Time range] と [Between] を選択します。
  6. [Start date] には、2018-01-01 00:00 と入力します。
  7. [Include start date] を選択します。
  8. [End date] には、2018-12-18 00:00 と入力します。
  9. [Include end date] を選択します。
  10. [Apply] を選択します。

これで、折れ線グラフには、Lpep_pickup_datetime が 2018 年 1 月 1 日から 2018 年 12 月 18 日までであるデータだけが含まれるようになるはずです。これで、今後 31 日間の予測を折れ線グラフに追加できるようになりました。

ビジュアルに予測を追加する

予測を追加するには、以下の手順を実行します。

  1. ビジュアルで、矢印を選択します。
  2. ドロップダウンメニューから、[Add forecast] を選択します。
  3. [Forecast properties] の [Forecast length] で、[Periods forward] に 31 を入力します。
  4. [Periods backwards] には、0 を入力します。
  5. [Prediction interval] では、デフォルト値の 90 のままにします。
  6. [Seasonality] は、デフォルトで選択されている Automatic のままにします。
  7. [Apply] を選択します。

これで、グラフにオレンジ色の線が表示されます。これは、2018 年 12 月 18 日以降の 31 日間の 1 日あたりの予測ピックアップ数です。予測ピックアップラインのさまざまなポイントにカーソルを合わせると、さまざまな日付を調べることができます。たとえば、カーソルを 2019 年 1 月 10 日に合わせると、その日の予想されるピックアップ数が約 22,000 であることが示されます。また、この予測では、上限 (予測されるピックアップの最大数) が約 26,000 であり、下限 (予測されるピックアップの最小数) が約 18,000 であることも示されています。

予測から複数のビジュアルを作成し、それらを組み合わせて共有可能な Amazon QuickSight ダッシュボードにすることができます。詳細については、ダッシュボードの操作を参照してください。

ML を活用した洞察を生成して、データセットの異常を検出

Amazon QuickSight を使用すると、ML に関する専門技能や知識がなくても、分析に洞察自動説明文ML を活用した異常検出を追加することができます。Amazon QuickSight は、推奨される洞察や自動説明文は自動的に生成しますが、ML を活用した異常検出を行うには、追加の手順を実行する必要があります。詳細については、ML を活用した異常検出の使用を参照してください。

この記事では、選択した場所からの時間の経過に伴う合計運賃の金額に異常があるかどうかを確認します。たとえば、データセットのほとんどの日付で最初のピックアップ場所 (空港など) からのタクシーの乗車料金の合計額が約 1,000 USD 以上である場合、料金の合計額が標準パターンから逸脱していれば異常となります。異常は必ずしも否定的なものではなく、異常をきっかけとしてさらに調査することも選択できます。

異常について洞察を行うには、以下の手順を実行します。

  1. 分析作成画面の右上隅で、[Add] ドロップダウンメニューをクリックして、[Add insight] を選択します。
  2. [Computation] 画面の [Computation type] で、[Anomaly detection] を選択します。
  3. [Fields list] で、以下のフィールドを選択します。
  • fare_amount
  • lpep_pickup_datetime
  • PULocationID
  1. [Get started] を選択します。
  2. 異常検出の設定
  3. [Analyze all combinations of these categories] を選択します。
  4. 他の設定はデフォルトのままにします。ここで、貢献度分析を実行して、降車の場所が異常にどのように影響したかを発見できます。詳細については、上位貢献要因の表示を参照してください。
  5. [Contribution analysis] で、[DOLocationID] を選択します。
  6. [Save] を選択します。
  7. [Run Now] を選択します。異常検出が完了するまでに最大 10 分かかる場合があります。約 10 分経ってもまだ実行している場合は、ブラウザがタイムアウトしている可能性があります。ブラウザを更新すると、ビジュアルに異常が表示されるはずです。
  8. [Explore anomalies] を選択します。

デフォルトでは、表示される異常はデータセットの最後の日付のものです。[SHOW ANOMALIES BY DATE] を選択し、ビジュアルの下部にあるスライダーをドラッグして、2018 年 1 月 1 日から 2018 年 12 月 30 日までの日付範囲全体を表示することで、データセットの日付範囲全体にわたって異常を調べることができます。

このグラフは、2018 年 3 月 21 日が、データセット全体で請求された運賃の異常の数が最も多いことを示しています。たとえば、2018 年 3 月 21 日に場所 74 で乗客をピックアップしたタクシーが請求した合計運賃は 7,181 でした。これは、2018 年 3 月 20 日に同じピックアップ場所でタクシーが請求した合計運賃 (約 19,728.5) と比べると 64% 低下しています。同じ日付の他のピックアップ場所での異常を調べると、請求された合計運賃が同様に低下していることがわかります。また、これらの異常に対して上位貢献の DOLocationID を表示することもできます。

2018 年 3 月 21 日にニューヨーク市で、何が起こってこの低下を引き起こしたのでしょうか? 簡単にオンライン検索すると、ニューヨーク市は 2018 年 3 月 21 日に厳しい気象条件であったことが明らかになりました。

分析をダッシュボードに公開し、ダッシュボードを共有し、E メールアラートを設定する

分析で追加のビジュアルを作成し、分析をダッシュボードとして公開し、他のユーザーとダッシュボードを共有することができます。QuickSight の異常検出により、何十億ものデータポイントを継続的に分析することで、データに隠れている洞察を発見できます。ビジネスメトリクスに異常が発生した場合、受信トレイでアラートを受信するように登録することができます。また、E メールアラートは、こうした異常の原因となる要因も示します。これにより、注意が必要なビジネスメトリクスにすぐに対応できます。

QuickSight ダッシュボードで、[Severity] を [High and above] に設定し、[Direction] を [Lower than expected] に設定して、異常アラートを E メールに送信するように設定できます。また、必ず最新のデータで異常検出が実行されるように、データの更新をスケジュールしてください。詳細については、データの更新を参照してください。

クリーンアップ

以後、余分な請求が発生しないようにするには、Amazon Quicksight のサブスクリプションをキャンセルする必要があります。

まとめ

この記事では、Amazon QuickSight で ML を活用した洞察を使用して、ML に関する事前の経験や知識を必要とせずに、将来のデータポイントを予測し、異常を検出し、データから貴重な洞察を引き出す方法を詳しく説明しました。ML の経験なしでさらに予測を行いたい場合は、Amazon Forecast をご覧ください。

ご質問またはご提案などについては、以下からコメントを残してください。

 


著者について

Osemeke Isibor は、AWS のパートナーソリューションアーキテクトです。 彼は AWS パートナーネットワーク (APN) パートナーと協力して、安全で可用性が高く、スケーラブルでありコスト最適化された AWS のソリューションを設計しています。彼は SF 愛好家であり、アニメのファンでもあります。