チュートリアル: Power BI で機械学習モデルを構築する

重要

データフロー v1 用の Power BI 自動機械学習 (AutoML) モデルの作成は廃止され、使用できなくなりました。 お客様は Microsoft Fabric の AutoML 機能にソリューションを移行することをお勧めします。 詳細については、廃止のお知らせを参照してください。

このチュートリアルの記事では、"自動機械学習" を使って、Power BI でバイナリの予測モデルを作成して適用します。 Power BI データフローを作成し、データフローで定義したエンティティを使って機械学習モデルをトレーニングして検証する操作を Power BI で直接行います。 次に、そのモデルを使って、新しいデータにスコアを付け、予測を生成します。

まず、バイナリの予測機械学習モデルを作成して、オンライン セッション属性のセットに基づいてオンラインの買い物客の購入意図を予測します。 この演習では、ベンチマーク機械学習セマンティック モデルを使用します。 モデルをトレーニングすると、モデルの結果を説明する検証レポートが Power BI によって自動生成されます。 この検証レポートを確認し、スコア付けのためにモデルをデータに適用できます。

このチュートリアルは、以下の手順から構成されています。

  • 入力データを使ってデータフローを作成する。
  • 機械学習モデルの作成とトレーニング。
  • モデル検証レポートを確認する。
  • データフロー エンティティにモデルを適用する。
  • モデルのスコア付けされた出力を Power BI レポートで使う。

入力データを使用してデータフローを作成する

以下の手順で、入力データを含むデータフローを作成します。

データを取得

データフローを作成する最初の手順として、データ ソースを準備します。 この場合、一連のオンライン セッションから機械学習セマンティック モデルを使用します。その一部は購入に結び付いています。 セマンティック モデルにはこれらのセッションに関する一連の属性が含まれ、それをモデルのトレーニングに使います。

セマンティック モデルは UC Irvine の Web サイトからダウンロードするか、online_shoppers_intention.csv をダウンロードすることができます。 このチュートリアルの後半では、その URL を指定してセマンティック モデルに接続します。

テーブルを作成する

データフローにエンティティを作成するには、Power BI サービスにサインインし、ワークスペースに移動します。

  1. ワークスペースがない場合は、Power BI の左ナビゲーション ウィンドウで [ワークスペース] を選び、[ワークスペースの作成] を選んでワークスペースを作成します。 [ワークスペースの作成] パネルでワークスペース名を入力し、[保存] を選びます。

    ワークスペースの作成方法のスクリーンショット。

  2. 新しいワークスペースの上部にある [新規作成] を選び、[データフロー] を選びます。

    データフローの作成方法のスクリーンショット。

  3. [新しいテーブルの追加] を選んで、Power Query エディターをブラウザーで起動します。

    [新しいテーブルの追加] を選ぶ画面のスクリーンショット。

  4. [データ ソースの選択] 画面で、データ ソースとして [Text/CSV] を選びます。

    [データ ソースの選択] で [Text/CSV] を選ぶ画面のスクリーンショット。

  5. [データ ソースへの接続] ページで、[File path or URL] (ファイル パスまたは URL) ボックスに online_shoppers_intention.csv ファイルへの次のリンクを貼り付け、[次へ] を選びます。

    https://raw.githubusercontent.com/santoshc1/PowerBI-AI-samples/master/Tutorial_AutomatedML/online_shoppers_intention.csv

    ファイルのパスへの貼り付けを示すスクリーンショット。

  6. Power Query エディターに、CSV ファイル内のデータのプレビューが表示されます。 データを読み込む前に変更するには、[データの変換] を選びます。

    [ファイル データのプレビュー] 画面で [データの変換] を選ぶ画面のスクリーンショット。

  7. 列のデータ型は Power Query によって自動的に推測されます。 データ型を変更するには、列ヘッダーの上部にある属性の型アイコンを選びます。 Revenue 列の型を [True/False] に変更します。

    右ペインにある [名前] ボックスの値を変更することで、クエリの名前をわかりやすい名前に変更できます。 クエリ名を「Online visitors」に変更します。

    クエリ名と Revenue 列のデータ型を変更する画面のスクリーンショット。

  8. [保存して閉じる] を選び、ダイアログ ボックスでデータフローの名前を指定し、[保存] を選びます。

    データフローを保存する画面のスクリーンショット。

機械学習モデルの作成とトレーニング

機械学習モデルを追加するには:

  1. トレーニング データとラベル情報を含むテーブルの [アクション] 一覧で [ML モデルを適用します] アイコンを選び、[機械学習モデルの追加] を選びます。

    [機械学習モデルの追加] を示すスクリーンショット。

  2. 機械学習モデルを作成する最初の手順は、予測する結果フィールドを含む履歴データを特定することです。 モデルは、このデータから学習することで作成されます。 この場合、訪問者が購入に至るかどうかを予測することが目的です。 予測する結果は、Revenue フィールドにあります。 [Outcome field] (結果フィールド) の値として [Revenue] を選び、[次へ] を選びます。

    履歴データ フィールドの選択を示すスクリーンショット。

  3. 次に、作成する機械学習モデルの種類を選びます。 Power BI では、特定した結果フィールドの値が分析され、そのフィールドを予測するために作成できる機械学習モデルの種類が提案されます。

    この場合、訪問者が購入するかどうかのバイナリ結果を予測することが目的なので、Power BI から [バイナリの予測] が推奨されます。 購入しようとしている訪問者を予測することに関心があるので、[対象の結果の選択][true] を選びます。 また、モデルの検証結果がまとめられた自動生成レポートで、結果に使うさまざまなラベルを設定できます。 [次へ] を選択します。

    [バイナリの予測] 画面を示すスクリーンショット。

  4. Power BI によってデータのサンプルの事前スキャンが行われ、より正確な予測が生成される可能性のある入力が提案されます。 Power BI から列が推奨されない場合は、列の横にその理由が表示されます。 列名の横にあるチェックボックスをオンまたはオフにすることで、モデルで学習するフィールドのみを含むように選択を変更できます。 [次へ] を選択して入力を受け入れます。

    列の選択を示すスクリーンショット。

  5. 最後の手順では、モデルに「Purchase intent prediction」という名前を付け、トレーニングに費やす時間を選びます。 早く結果を確認する場合はトレーニング時間を短くし、最適なモデルを取得する場合は時間を長くすることができます。 次に、 [Save and train](保存してトレーニング) を選択して、モデルのトレーニングを開始します。

    モデルの名前付けとトレーニング時間の選択を示すスクリーンショット。

"Credentials not found for data source" (データ ソースの資格情報が見つかりません) のようなエラーを受け取る場合、Power BI がデータをスコア付けできるように、資格情報を更新する必要があります。 資格情報を更新するには、ヘッダー バーで [その他のオプション] を選び、[設定]>[設定] を選びます。

[設定] の選択を示すスクリーンショット。

[データフロー] でデータフローを選び、[データ ソースの資格情報] を展開し、[資格情報の編集] を選びます。

データフローの資格情報の編集を示すスクリーンショット。

トレーニングの状態を追跡する

トレーニング プロセスは、履歴データをサンプリングして正規化し、セマンティック モデルを 2 つの新しいエンティティ Purchase Intent Prediction Training DataPurchase Intent Prediction Testing Data に分割することから始まります。

セマンティック モデルのサイズによっては、トレーニング プロセスに、数分から、選んだトレーニング時間までかかることがあります。 データフローの状態によって、モデルがトレーニング中および検証中であることを確認できます。 この状態は、ワークスペースの [セマンティック モデルとデータフロー] タブに進行中のデータ更新として表示されます。

トレーニング中のモデルを示すスクリーンショット。

データフローの [機械学習モデル] タブでモデルを確認できます。 [状態] には、モデルがトレーニングのためにキューに格納されているか、トレーニング中か、トレーニング済みかが示されます。 モデルのトレーニングが完了すると、データフローには更新された "最後のトレーニング" 時刻と "トレーニング済み" の状態が表示されます。

モデル検証レポートを確認する

モデル検証レポートを確認するには、[機械学習モデル] タブで、[アクション][トレーニング レポートの表示] ボタンを選びます。 このレポートには、機械学習モデルがどのように実行される可能性があるかが示されます。

レポートの [モデル パフォーマンス] ページで、[See top predictors] (最上位の予測子を表示する) を選んで、モデルの最上位の予測子を表示します。 予測子のいずれかを選択して、結果の分布がその予測子にどのように関連付けられているかを確認できます。

[モデル パフォーマンス] ページを示すスクリーンショット。

[モデル パフォーマンス] ページの [Probability Threshold] (確率しきい値) スライサーを使うと、モデルの [精度][リコール] の影響を確認できます。

[Probability Threshold] (確率しきい値) スライサーを示すスクリーンショット。

レポートの他のページには、モデルの統計的なパフォーマンス メトリックが記載されます。

また、このレポートには [トレーニングの詳細] ページがあり、[Iterations run] (イテレーションの実行)、入力から特徴を抽出した方法、[Final model used] (最後に使われたモデル) のハイパー パラメーターが表示されています。

データフロー エンティティにモデルを適用する

レポートの上部にある [モデルの適用] ボタンを選択すると、このモデルが呼び出されます。 [適用] ダイアログで、モデルを適用するソース データを含むターゲット エンティティを指定できます。 次に、[保存して適用する] を選びます。

モデルの適用を示すスクリーンショット。

モデルを適用すると、enriched <モデル名>enriched <モデル名> descriptions というサフィックスが付いた 2 つの新しいテーブルが作成されます。 この場合、Online visitors テーブルにモデルを適用すると、以下が作成されます。

  • Online visitors enriched Purchase intent prediction。モデルからの予測出力が含まれます。
  • Online visitors enriched Purchase intent prediction explanations。予測の上位レコード固有インフルエンサーが含まれます。

バイナリ予測モデルを適用すると、OutcomePredictionScorePredictionExplanationExplanationIndex という 4 列が追加されます。それぞれに Purchase intent prediction というプレフィックスが付いています。

新しい 4 列を示すスクリーンショット。

データフローの更新が完了したら、Online visitors enriched Purchase intent prediction テーブルを選んで結果を確認できます。

Online visitors enriched Purchase intent prediction テーブルの結果を示すスクリーンショット。

データフローで Power Query エディターから直接、ワークスペース内で任意の自動機械学習モデルを呼び出すこともできます。 自動機械学習モデルにアクセスするには、自動機械学習モデルからの分析情報を使ってエンリッチするテーブルの [編集] を選びます。

テーブルの [編集] の選択を示すスクリーンショット。

Power Query エディターのリボンの [AI 分析情報] を選びます。

[AI 分析情報] の選択を示すスクリーンショット。

[AI 分析情報] 画面で、ナビゲーション ウィンドウから [Power BI Machine Learning Models] (Power BI 機械学習モデル) フォルダーを選びます。 一覧には、Power Query 関数としてアクセスできるすべての機械学習モデルが表示されます。 機械学習モデルの入力パラメーターは、対応する Power Query 関数のパラメーターとして自動的にマップされます。 自動パラメーター マッピングは、パラメーターの名前とデータ型が同じ場合にのみ行われます。

機械学習モデルを呼び出すには、ドロップダウン リストの入力として、選んだモデルの列のいずれかを選びます。 入力行の横にある列アイコンを切り替えることで、入力として使う定数値を指定することもできます。

Power Query 関数ブラウザーを示すスクリーンショット。

[適用] を選んで、機械学習モデルの出力をテーブルの新しい列としてプレビュー表示します。 クエリに対する [適用されたステップ] の下にモデルの呼び出しも表示されます。

Power Query エディターのプレビュー結果を示すスクリーンショット。

データフローを保存すると、データフローの更新時に (エンティティ テーブルの行の新規作成や更新に対して) モデルが自動的に呼び出されます。

モデルのスコア付けされた出力を Power BI レポートで使用する

機械学習モデルからのスコア付けされた出力を使うには、[データフロー] コネクタを使って、Power BI Desktop からデータフローに接続します。 これで、Online visitors enriched Purchase intent prediction テーブルを使って、モデルの予測を Power BI のレポートに組み込むことができるようになりました。

制限事項

自動機械学習でゲートウェイを使う場合、既知の問題がいくつかあります。 ゲートウェイを使う必要がある場合は、まずゲートウェイ経由で必要なデータをインポートするデータフローを作成することをお勧めします。 その後、最初のデータフローを参照する別のデータフローを作成して、これらのモデルを作成または適用します。

AI のデータフローの操作が失敗した場合は、データフローでの AI の使用時に高速結合を有効にする必要がある場合があります。 テーブルのインポートが完了したら、AI 機能の追加を開始する "前" に、[ホーム] リボンから [オプション] を選択し、表示されるウィンドウで [複数のソースからデータを結合できるようにします] の横にあるチェックボックスをオンにして機能を有効にしてから、[OK] を選択して選択内容を保存します。 その後、データフローに AI 機能を追加できるようになります。

このチュートリアルでは、次の手順に従って Power BI でバイナリの予測モデルを作成して適用しました。

  • 入力データを使ってデータフローを作成しました。
  • 機械学習モデルを作成してトレーニングしました。
  • モデル検証レポートを確認しました。
  • データフロー エンティティにモデルを適用しました。
  • モデルのスコア付けされた出力を Power BI レポートで使う方法を学習しました。

Power BI での機械学習の自動化の詳細については、「Power BI での自動化された機械学習」を参照してください。