Azure Machine Learning で自動機械学習を確認する

この演習では、Azure Machine Learning の自動機械学習機能を使って、機械学習モデルをトレーニングし、評価します。 次に、トレーニングしたモデルをデプロイしてテストします。

この演習の所要時間は約 30 分です。

Azure Machine Learning ワークスペースの作成

Azure Machine Learning を使うには、お使いの Azure サブスクリプションで Azure Machine Learning ワークスペースをプロビジョニングする必要があります。 そうすると、Azure Machine Learning スタジオを使ってワークスペース内のリソースを操作できるようになります。

ヒント: 既に Azure Machine Learning ワークスペースがある場合は、それを使って次のタスクに進むことができます。

  1. Microsoft 資格情報を使って、https://portal.azure.comAzure portal にサインインします。

  2. [+ リソースの作成] を選び、Machine Learning を検索し、次の設定を使って新しい Azure Machine Learning リソースを作成します。
    • [サブスクリプション]: お使いの Azure サブスクリプション
    • リソース グループ: リソース グループを作成または選択します。
    • 名前: “ワークスペースの一意の名前を入力します”**
    • リージョン: 地理的に最も近いリージョンを選びます
    • ストレージ アカウント: ワークスペース用に作成される既定の新しいストレージ アカウントです
    • キー コンテナー: ワークスペース用に作成される既定の新しいキー コンテナーです
    • Application Insights: ワークスペース用に作成される既定の新しい Application Insights リソースです
    • コンテナー レジストリ: なし (コンテナーにモデルを初めてデプロイするときに、自動的に作成されます)
  3. Review + create を選択し、次に [作成] を選択します。 ワークスペースが作成されるまで待ってから (数分かかる場合があります)、デプロイされたリソースに移動します。

  4. [スタジオを起動する] を選択し (または新しいブラウザー タブを開いて https://ml.azure.com に移動し)、Microsoft アカウントを使って Azure Machine Learning スタジオにサインインします。 表示されているメッセージがあれば閉じます。

  5. Azure Machine Learning スタジオに、新しく作成したワークスペースが表示されます。 それ以外の場合は、左側のメニューで [すべてのワークスペース] を選び、先ほど作成したワークスペースを選びます。

自動機械学習を使ってモデルをトレーニングする

自動機械学習を使うと、複数のアルゴリズムとパラメーターを試して複数のモデルをトレーニングし、お使いのデータに最適なものを特定できます。 この演習では、季節と気象の特徴に基づき、自転車レンタル詳細の履歴データセットを使って、特定の日に予想される自転車レンタルの数を予測するモデルをトレーニングします。

引用: “この演習で使われるデータは Capital Bikeshare から得たものであり、発行データのライセンス契約に従って使われます”。**

  1. Azure Machine Learning スタジオで、 [自動 ML] ページ ( [作成] の下) を表示します。

  2. 次の設定で新しい自動 ML ジョブを作成し、必要に応じて [次へ] を使ってユーザー インターフェイスを進めます。

    基本設定:

    • ジョブ名: mslearn-bike-automl
    • 新しい実験名: mslearn-bike-rental
    • 説明: 自転車レンタル予測のための自動機械学習
    • タグ: “なし”**

    タスクの種類とデータ:

    • タスクの種類の選択: 回帰
    • データセットの選択: 次の設定で新しいデータセットを作成します。
      • データ型:
        • 名前: bike-rentals
        • 説明: Historic bike rental data
        • 種類: テーブル (mltable)
      • データ ソース:
        • [ローカル ファイルから] を選びます
      • 宛先ストレージの種類:
        • Datastore type (データストアの種類) :Azure Blob Storage
        • 名前: workspaceblobstore
      • MLtable の選択:
        • フォルダーのアップロード:アップロードする必要がある 2 つのファイルを含むフォルダーをダウンロードして解凍してください** https://aka.ms/bike-rentals

      [作成] を選択します データセットが作成されたら、bike-rentals データセットを選択して、自動 ML ジョブの送信に進みます。

    タスク設定:

    • タスクの種類: 回帰
    • [データセット]: bike-rentals
    • ターゲット列: レンタル (整数)
    • Additional configuration settings:
      • [Primary metric](プライマリ メトリック): NormalizedRootMeanSquaredError
      • 最適なモデルの説明: “未選択”**
      • アンサンブル スタッキングを有効にする:未選択
      • サポートされているすべてのモデルを使用する: 選択解除いくつかの特定のアルゴリズムだけを試すように実験を制限します。
      • 許可されるモデル: [RandomForest][LightGBM] を選択します — 通常は、できるだけ多く試してみてください。ただし、モデルを追加すると、ジョブの実行にかかる時間が長くなります。
    • 制限: “このセクションを展開します”**
      • 最大試行回数: 3
      • 同時試行の最大数: 3
      • 最大ノード: 3
      • メトリック スコアしきい値: 0.085 (モデルで、正規化された二乗平均平方根誤差メトリック スコア 0.085 以下を達成した場合にジョブが終了するようにします。)**
      • 実験のタイムアウト: 15
      • 反復のタイムアウト: 15
      • Enable early termination (早期終了を有効にする): “オン”**
    • 検証とテスト:
      • 検証の種類: トレーニング検証の分割
      • Percentage of validation data (検証データの割合): 10
      • テスト データセット: なし

    コンピューティング:

    • コンピューティングの種類を選択: サーバーレス
    • [仮想マシンの種類]: CPU
    • 仮想マシンのレベル: 専用
    • 仮想マシン サイズ:Standard_DS3_V2*
    • インスタンスの数: 1

    * サブスクリプションで使用可能な VM サイズが制限されている場合は、使用可能なサイズを選択してください。

  3. トレーニング ジョブを送信します。 自動的に開始されます。

  4. ジョブが完了するまでお待ちください。 しばらく時間がかかる場合があります。コーヒーでも飲んで待ちましょう。

最高のモデルを確認する

自動機械学習ジョブが完了したら、トレーニングした最適なモデルを確認できます。

  1. 自動機械学習のジョブの [概要] タブで、最適なモデルの概要を確認します。 アルゴリズム名を囲むボックスを含む自動機械学習ジョブの最適なモデル概要のスクリーンショット。

    : 状態の下に “警告: ユーザーが指定した終了スコアに達しました… “ というメッセージが表示されることがあります。 これは予想されている現象です。 次の手順に進んでください。

  2. 最適なモデルの [アルゴリズム名] の下のテキストを選び、詳細を表示します。

  3. [メトリック] タブを選択し、residuals グラフと predicted_true グラフがまだ選択されていない場合は選択します。

    モデルのパフォーマンスを示すグラフを確認します。 residuals グラフには、”残差” (予測値と実際の値の差) がヒストグラムとして表示されます。** predicted_true グラフでは、予測値と実際の値を比較します。

モデルをデプロイしてテストする

  1. 自動機械学習ジョブによってトレーニングされた最適なモデルの [モデル] タブで [デプロイ] を選び、[リアルタイム エンドポイント] オプションを使って、次の設定でモデルをデプロイします。
    • 仮想マシン:Standard_DS3_v2
    • インスタンス数:3
    • エンドポイント:新規
    • [エンドポイント名]:既定値のままにするか、グローバルに一意であることを確認します**
    • デプロイ名:既定値のままにする
    • [推論データ収集]:Disabled
    • モデルをパッケージ化する:Disabled
  2. デプロイが開始するのを待ちます。これには数秒かかることがあります。 predict-rentals エンドポイントの [デプロイの状態] は、ページのメイン部分に “実行中” と表示されます。**
  3. [デプロイの状態] が “成功” に変わるまで待ちます。** これには 5 分から 10 分かかる場合があります。

デプロイされたサービスをテストする

これで、デプロイされたサービスをテストできます。

  1. Azure Machine Learning スタジオの左側のメニューで、 [エンドポイント] を選択し、predict-rentals リアルタイム エンドポイントを開きます。

  2. predict-rentals リアルタイム エンドポイント ページで、[テスト] タブを表示します。

  3. [Input data to test endpoint] (テスト エンドポイントへの入力データ) ペインで、テンプレート JSON を次の入力データに置き換えます。

     {
       "input_data": {
         "columns": [
             {
                 "day": 1,
                 "mnth": 1,   
                 "year": 2022,
                 "season": 2,
                 "holiday": 0,
                 "weekday": 1,
                 "workingday": 1,
                 "weathersit": 2, 
                 "temp": 0.3, 
                 "atemp": 0.3,
                 "hum": 0.3,
                 "windspeed": 0.3 
             }
         ],
         "index": [],
         "data": []
       }
     }
    
  4. [テスト] ボタンをクリックします。

  5. 次のように、入力の特徴に基づいて予測されるレンタル数を含むテスト結果を確認します。

     {
       "Results": [
         444.27799000000000
       ]
     }
    

    テスト ペインによって入力データが取得され、トレーニングしたモデルを使用して予測されたレンタル数が返されました。

これまでに行った内容を振り返ってみましょう。 過去の自転車レンタル データのデータセットを使用してモデルをトレーニングしました。 このモデルでは、季節と気象の “特徴” に基づいて、特定の日に予想される自転車のレンタル数を予測しています。

クリーンアップ

作成した Web サービスは “Azure コンテナー インスタンス” にホストされます。 それ以上実験する予定がない場合は、不要な Azure の使用が発生するのを避けるために、エンドポイントを削除する必要があります。

  1. Azure Machine Learning Studio[エンドポイント] タブで、predict-rentals エンドポイントを選択します。 次に、[削除] を選び、エンドポイントを削除することを確認します。

    コンピューティングを削除すると、サブスクリプションがコンピューティング リソースに対して課金されなくなります。 ただし、サブスクリプションに Azure Machine Learning ワークスペースが存在する限り、データ ストレージに対して少額が課金されます。 Azure Machine Learning の探索を完了したら、Azure Machine Learning ワークスペースとそれに関連付けられたリソースを削除できます。

ワークスペースを削除するには:

  1. Azure portal[リソース グループ] ページで、Azure Machine Learning ワークスペースの作成時に指定したリソース グループを開きます。
  2. [リソース グループの削除] をクリックし、リソース グループ名を入力して削除することを確認し、[削除] を選択します。