Azure Machine Learning を使用したデータの分析

このチュートリアルでは、Azure Machine Learning デザイナーを使用して、予測機械学習モデルを構築します。 このモデルは、Azure Synapse に格納されているデータに基づきます。 チュートリアルのシナリオは、Adventure Works (自転車店) でターゲット マーケティング キャンペーンを作成できるように、顧客が自転車を購入する可能性があるかどうかを予測することです。

前提条件

このチュートリアルの手順を実行するには、次のものが必要です。

  • AdventureWorksDW サンプル データが事前に読み込まれた SQL プール。 この SQL プールをプロビジョニングするには、SQL プールの作成に関するページを参照し、サンプル データを読み込むことを選択します。 データ ウェアハウスは既にあるが、サンプル データがない場合は、サンプル データを手動で読み込むことができます。
  • Azure Machine Learning ワークスペース。 このチュートリアルに従って、新しいものを作成します。

データを取得する

使用しているデータは、AdventureWorksDW の dbo.vTargetMail ビューにあります。 このチュートリアルでデータストアを使用するには、Azure Synapse で現在データセットをサポートしていないため、データをまず Azure Data Lake Storage アカウントにエクスポートします。 Azure Data Factory を使用することで、コピー アクティビティを使用して、データ ウェアハウスから Azure Data Lake Storage にデータをエクスポートできます。 インポートには、次のクエリを使用します。

SELECT [CustomerKey]
  ,[GeographyKey]
  ,[CustomerAlternateKey]
  ,[MaritalStatus]
  ,[Gender]
  ,cast ([YearlyIncome] as int) as SalaryYear
  ,[TotalChildren]
  ,[NumberChildrenAtHome]
  ,[EnglishEducation]
  ,[EnglishOccupation]
  ,[HouseOwnerFlag]
  ,[NumberCarsOwned]
  ,[CommuteDistance]
  ,[Region]
  ,[Age]
  ,[BikeBuyer]
FROM [dbo].[vTargetMail]

Azure Data Lake Storage でデータが使用できるようになったら、Azure Machine Learning のデータストアを使用して、Azure Storage サービスに接続します。 次の手順に従って、データストアと対応するデータセットを作成します。

  1. Azure portal から、または Azure Machine Learning スタジオにサインインして、Azure Machine learning スタジオを起動します。

  2. 管理 セクションの左ウィンドウで データストア をクリックし、New Datastore\(新しいデータストア\) をクリックします。

    Azure Machine Learning インターフェイスの左ウィンドウのスクリーンショット

  3. データストアの名前を指定し、種類を 'Azure Blob Storage' として選択し、場所と資格情報を指定します。 [作成] をクリックします。

  4. 次に、 [アセット] セクションの左ウィンドウの [データセット] をクリックし ます。 [From datastore]\(データストアから\) オプションで、 [データセットの作成] を選択します。

  5. データセットの名前を指定し、種類を [表形式] として選択します。 次に、 [次へ] をクリックして先に進みます。

  6. データストアの選択または作成セクションで、 [Previously created datastore]\(以前に作成されたデータストア\) オプションを選択します。 前に作成したデータストアを選択します。 [次へ] をクリックし、パスとファイルの設定を指定します。 ファイルに列ヘッダーが含まれる場合は、必ずそれを指定してください。

  7. 最後に、 [作成] をクリックしてデータセットを作成します。

デザイナーの実験を構成する

次に、デザイナーの構成について次の手順に従います。

  1. [作成者] セクションの左ウィンドウで、 [デザイナー] タブをクリックします。

  2. [Easy-to-use prebuilt modules]\(使いやすい事前構築済みコンポーネント\) を選択して、新しいパイプラインを作成します。

  3. 右側の設定ウィンドウで、パイプラインの名前を指定します。

  4. また、以前にプロビジョニングされたクラスターの設定ボタンで、実験全体のターゲット コンピューティング クラスターを選択します。 [設定] ウィンドウを閉じます。

データをインポートする

  1. 検索ボックスの下の左ウィンドウで、 [データセット] サブタブを選択します。

  2. 先に作成したデータセットをキャンバスにドラッグします。

    キャンバス上のデータセット コンポーネントのスクリーンショット。

データを整理する

データを整理するには、モデルに関係のない列を削除します。 次の手順に従ってください。

  1. 左ウィンドウで、 [コンポーネント] サブタブを選択します。

  2. [データ変換] < [操作][Select Columns in Dataset]\(データセットの列の選択\) コンポーネントをキャンバスにドラッグします。 このコンポーネントをデータセット コンポーネントに接続します。

    キャンバス上の列選択コンポーネントのスクリーンショット。

  3. コンポーネントをクリックしてプロパティ ウィンドウを開きます。 [列の編集] をクリックして、削除する列を指定します。

  4. 2 つの列が除外されます: CustomerAlternateKey と GeographyKey。 [保存]

    削除される列を示すスクリーンショット。

モデルを構築する

データは 80-20 で分割されます。80% が機械学習モデルのトレーニングに、20% はモデルのテストに使用されます。 今回の二項分類の問題には "2 クラス" アルゴリズムが使用されています。

  1. [データの分割] コンポーネントをキャンバスにドラッグします。

  2. プロパティ ウィンドウで、 [Fraction of rows in the first output dataset]\(最初の出力データセットにおける列の割合\) に「0.8」と入力します。

    0.8 の分割比を示すスクリーンショット。

  3. [2 クラス ブースト デシジョン ツリー] コンポーネントをキャンバスにドラッグします。

  4. [モデルのトレーニング] コンポーネントをキャンバスにドラッグします。 それを [2 クラス ブースト デシジョン ツリー] (ML アルゴリズム) コンポーネントと [データの分割] (アルゴリズムをトレーニングするデータ) コンポーネントに接続して、入力を指定します。

  5. [モデルのトレーニング] の [プロパティ] ウィンドウの [ラベル列] オプションで、[列の編集] を選択します。 予測する列として [BikeBuyer] 列を選択し、 [保存] を選択します。

    選択されたラベル列 BikeBuyer を示すスクリーンショット。

    2 クラス ブースト デシジョン ツリー コンポーネントとデータの分割コンポーネントに接続されているモデルのトレーニング コンポーネントを示すスクリーンショット。

モデルにスコアを付ける

ここで、テスト データに対してモデルがどのように実行されるかをテストします。 2 つの異なるアルゴリズムを比較して、どちらの方がパフォーマンスが向上するかを確認します。 次の手順に従ってください。

  1. [Score Model]\(モデルのスコア付け\) コンポーネントをキャンバスにドラッグし、 [モデルのトレーニング] コンポーネントと [Split Data]\(データの分割\) コンポーネントに接続します。

  2. [Two-Class Bayes Averaged Perceptron]\(2 クラス ベイズ平均化パーセプトロン\) を実験キャンバスにドラッグします。 このアルゴリズムのパフォーマンスを 2 クラスのブースト デシジョン ツリーのパフォーマンスと比較します。

  3. [モデルのトレーニング] コンポーネントと [モデルのスコア付け] コンポーネントをコピーしてキャンバスに貼り付けます。

  4. [モデルの評価] コンポーネントをキャンバスにドラッグし、2 つのアルゴリズムを比較します。

  5. [送信] をクリックして、パイプラインの実行を設定します。

    キャンバス上の残りのすべてのコンポーネントのスクリーンショット。

  6. 実行が完了したら、 [モデルの評価] コンポーネントを右クリックし、 [Visualize Evaluation results]\(評価結果の視覚化\) をクリックします。

    結果のスクリーンショット。

指定されているメトリックは、ROC 曲線、精度/再現率図、およびリフト曲線です。 これらのメトリックを見ると、最初のモデルの方が 2 つ目のものよりもパフォーマンスが優れていることがわかります。 最初のモデルの予測を確認するには、[モデルのスコア付け] コンポーネントを右クリックし、[Visualize Scored dataset]\(スコア付けされたデータセットの視覚化\) をクリックして予測される結果を表示します。

テスト データセットに追加された 2 つの列が表示されます。

  • スコア付け確率: 顧客が自転車を購入する可能性
  • スコア付けラベル: モデルによって行われた分類 - 自転車を購入する顧客 (1) か、購入しない顧客 (0) このラベル付けの確率のしきい値は 50% に設定されており、調整できます。

[BikeBuyer] 列 (実際) をスコア付けラベル (予測) と比較して、モデルのパフォーマンスがどの程度優れていたか確認します。 次に、このモデルを使用して、新しい顧客の予測を行うことができます。 このモデルを Web サービスとして発行するか、または Azure Synapse に結果を書き戻すことができます。

次のステップ

Azure Machine Learning の詳細については、Azure での機械学習の概要に関するページを参照してください。

データ ウェアハウスの組み込みのスコアリングについて、こちらを参照してください。