チュートリアル: Azure Machine Learning スタジオでコードなし AutoML を使用して分類モデルをトレーニングする

Azure Machine Learning スタジオで Azure Machine Learning 自動 ML を使用して、コードなし AutoML により分類モデルをトレーニングする方法について説明します。 この分類モデルは、クライアントが金融機関に定期預金を申し込むかどうかを予測します。

自動 ML を使用すると、時間がかかるタスクを自動化することができます。 自動機械学習では、アルゴリズムとハイパーパラメーターのさまざまな組み合わせをすばやく反復し、選択された成功のメトリックに基づいて最適なモデルを効率的に発見します。

このチュートリアルではコードを一切記述しません。スタジオのインターフェイスを使用してトレーニングを実行します。 次のタスクを実行する方法について説明します。

  • Azure Machine Learning ワークスペースを作成します。
  • 自動機械学習の実験を実行します。
  • モデルの詳細を調べる。
  • 推奨モデルをデプロイする。

他のタイプのモデルについても、自動機械学習を試してみましょう。

前提条件

  • Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。

  • bankmarketing_train.csv データ ファイルをダウンロードします。 [y] 列では、このチュートリアルの予測対象列として後で識別される定期預金に顧客が申し込んだかどうかが示されます。

ワークスペースの作成

Azure Machine Learning ワークスペースは、機械学習モデルを実験、トレーニング、およびデプロイするために使用する、クラウドでの基本的なリソースです。 ワークスペースは、Azure サブスクリプションとリソース グループを、サービス内の簡単に使用できるオブジェクトに結び付けます。

このチュートリアルは、以下の手順で最初にワークスペースを作成してから内容に入ります。

  1. Azure Machine Learning Studio にサインインします。

  2. [ワークスペースの作成] を選択します。

  3. 新しいワークスペースを構成するには、次の情報を指定します。

フィールド 説明
ワークスペース名 ワークスペースを識別する一意の名前を入力します。 名前は、リソース グループ全体で一意である必要があります。 覚えやすく、他のユーザーが作成したワークスペースと区別しやすい名前を使用します。 ワークスペース名では、大文字と小文字は区別されません。
サブスクリプション 使用する Azure サブスクリプションを選択します。
リソース グループ サブスクリプションの既存のリソース グループを使用するか、任意の名前を入力して新しいリソース グループを作成します。 リソース グループは、Azure ソリューションの関連するリソースを保持します。 既存のリソース グループを使用するには、共同作成者または所有者のロールが必要です。 アクセスの詳細については、「Azure Machine Learning ワークスペースへのアクセスの管理」の記事をご覧ください。
リージョン ユーザーとデータ リソースに最も近い Azure リージョンを選択し、ワークスペースを作成します。
  1. [作成] を選択して、ワークスペースを作成します。

Azure リソースの詳細については、記事「作業を開始するために必要なリソースを作成する」の手順を参照してください。

Azure でワークスペースを作成するその他の方法については、「ポータルまたは Python SDK (v2) を使用して Azure Machine Learning ワークスペースを管理する」を参照してください。

自動機械学習のジョブを作成する

https://ml.azure.com で Azure Machine Learning スタジオを使用して、次の実験の設定を完了し、ステップを実行します。Azure Machine Learning スタジオは、あらゆるスキル レベルのデータ サイエンス実務者がデータ サイエンス シナリオを実行するための機械学習ツールを含む統合 Web インターフェイスです。 Internet Explorer ブラウザーでは、Studio はサポートされません。

  1. お使いのサブスクリプションと、作成したワークスペースを選択します。

  2. 左側のウィンドウの [作成] セクションで [Automated ML]\(自動 ML\) を選択します。

    これは初めての自動 ML 実験であるため、空のリストとドキュメントへのリンクが表示されます。

    Get started page

  3. [New automated ML job](新規の自動機械学習ジョブ) を選択します。

データセットを作成してデータ資産として読み込む

実験を構成する前に、使用するデータ ファイルを Azure Machine Learning データ資産の形式でワークスペースにアップロードします。 このチュートリアルの場合、データ資産とは AutoML ジョブのデータセットだと考えることができます。 そうすることで、データを実験に適した形式にすることができます。

  1. [+ データセットの作成] ドロップダウンで [ローカル ファイルから] を選択し、新しいデータ資産を作成します。

    1. [基本情報] フォームで、データ資産に名前を付け、必要に応じて説明を入力します。 自動 ML インターフェイスでは、現在、TabularDatasets だけがサポートされています。そのため、データセットの種類は既定で "表形式" に設定されます。

    2. 左下の [次へ] を選択します

    3. [データストアとファイルの選択] フォームで、ワークスペースの作成時に自動的に設定された既定のデータストア、workspaceblobstore (Azure Blob Storage) を選択します。 データ ファイルは、ここにアップロードすることで、ワークスペースから利用できるようになります。

    4. [アップロード] ドロップダウンから、[ファイルのアップロード] を選択します。

    5. ローカル コンピューター上の bankmarketing_train.csv ファイルを選択します。 これは、前提条件としてダウンロードしたファイルです。

    6. 左下の [次へ] を選択して、ワークスペースの作成時に自動的に設定された既定のコンテナーにアップロードします。

      アップロードが完了すると、ファイルの種類に基づいて [Settings and preview](設定とプレビュー) フォームが事前設定されます。

    7. [スキーマ] フォームを使用して、データが正しく書式設定されていることを確認します。 データの設定は以下のようになっている必要があります。 データが正確であることを確認したら、[次へ] を選択します。

      フィールド 説明 チュートリアルの値
      ファイル形式 ファイルに格納されているデータのレイアウトと種類を定義します。 区切り記号
      区切り記号 プレーン テキストまたは他のデータ ストリーム内の個別の独立した領域の間の境界を指定するための 1 つ以上の文字。 コンマ
      エンコード データセットの読み取りに使用する、ビットと文字のスキーマ テーブルを識別します。 UTF-8
      列見出し データセットの見出しがある場合、それがどのように処理されるかを示します。 すべてのファイルのヘッダーを同じものにする
      行のスキップ データセット内でスキップされる行がある場合、その行数を示します。 なし
    8. [スキーマ] フォームを使用すると、この実験用にデータをさらに構成できます。 この例では、day_of_week のトグル スイッチを選択して、これを含めないようにします。 [次へ] を選択します。 Schema form

    9. [詳細の確認] フォームで、[基本情報]、[データストアとファイルの選択][Settings and preview](設定とプレビュー) のフォームに入力された情報が一致していることを確認します。

    10. [作成] を選択して、データセットの作成を完了します。

    11. リストにデータセットが表示されたら、それを選択します。

    12. データ資産を選択し、[プレビュー] タブに表示されたデータの設定を確認します。day_of_week が含まれていないことを確認してから、[閉じる] を選択します。

    13. [次へ] を選択します。

ジョブを構成する

データを読み込んで構成したら、実験を設定できます。 このセットアップには、ご使用のコンピューティング環境のサイズの選択や予測する列の指定など、実験の設計タスクが含まれます。

  1. [新規作成] をクリックします。

  2. 次のように [Configure job](ジョブの構成) フォームに入力します。

    1. この実験の名前として「my-1st-automl-experiment」と入力します。

    2. 予測するターゲット列として、 [y] を選択します。 この列には、クライアントが定期預金を申し込むかどうかが示されます。

    3. コンピューティングの種類として [コンピューティング クラスター] を選択します。

    4. コンピューティング先とは、トレーニング スクリプトを実行したりサービスのデプロイをホストしたりするために使用されるローカルまたはクラウド ベースのリソース環境です。 この実験では、クラウドベースのサーバーレス コンピューティング (プレビュー) を試すか、独自のクラウドベースのコンピューティングを作成できます。

      1. サーバーレス コンピューティングを使用するには、プレビュー機能を有効にし[サーバーレス] を選択して、この手順の残りの部分をスキップします。
      2. 独自のコンピューティング先を作成するには、[+ 新規] を選択してコンピューティング先を構成します。
        1. [仮想マシンの選択] フォームに必要事項を入力してコンピューティングを設定します。

          フィールド 説明 チュートリアルの値
          場所 マシンを実行する場所となるリージョン 米国西部 2
          仮想マシンの階層 実験の優先度を選択します。 専用
          仮想マシンのタイプ コンピューティング用の仮想マシンの種類を選択します。 CPU (中央処理装置)
          仮想マシンのサイズ コンピューティングの仮想マシン サイズを選択します。 指定したデータと実験の種類に基づいて、推奨サイズの一覧が提供されます。 Standard_DS12_V2
        2. [次へ] を選択して、 [Configure settings](構成の設定) フォームに必要事項を入力します。

          フィールド 説明 チュートリアルの値
          コンピューティング名 コンピューティング コンテキストを識別する一意名。 automl-compute
          最小/最大ノード データをプロファイリングするには、1 つ以上のノードを指定する必要があります。 最小ノード: 1
          最大ノード: 6
          スケール ダウンする前のアイドル時間 (秒) クラスターが自動的に最小ノード数にスケールダウンされるまでのアイドル時間。 120 (既定値)
          詳細設定 実験用の仮想ネットワークを構成および承認するための設定。 なし
        3. [作成] を選択してコンピューティング先を作成します。

          完了するまでに数分かかります。

          Settings page

        4. 作成後、ドロップダウン リストから新しいコンピューティング先を選択します。

    5. [次へ] を選択します。

  3. [Task type and settings](タスクの種類と設定) フォームで、機械学習のタスクの種類と構成設定を指定して、自動 ML 実験の設定を完了します。

    1. 機械学習のタスクの種類として [分類] を選択します。

    2. [View additional configuration settings](追加の構成設定を表示) を選択し、次のようにフィールドを設定します。 これらは、トレーニング ジョブをより細かく制御するための設定です。 設定しない場合、実験の選択とデータに基づいて既定値が適用されます。

      追加の構成 説明 チュートリアルの値
      主要メトリック 機械学習アルゴリズムを測定される評価メトリック。 AUC_weighted
      最適なモデルの説明 自動 ML で作成された最適なモデルの説明を自動的に表示します。 有効化
      ブロックされたアルゴリズム トレーニング ジョブから除外するアルゴリズム なし
      追加の分類設定 これらの設定は、モデルの精度を向上させるのに役立ちます 肯定クラス ラベル: なし
      終了条件 条件が満たされると、トレーニング ジョブが停止します。 トレーニング ジョブ時間 (時間単位): 1
      Metric score threshold (メトリック スコアのしきい値): なし
      コンカレンシー イテレーションごとに実行される並列イテレーションの最大数 コンカレント イテレーションの最大数: 5

      [保存] を選択します。

    3. [次へ] を選択します。

  4. [[省略可能] 検証とテスト] フォームで、

    1. [検証の種類] として [k フォールド クロス検証] を選択します。
    2. [クロス検証の数] として 2 を選択します。
  5. [完了] を選択して実験を実行します。 実験の準備が開始されると、[ジョブの詳細] 画面が開いて、一番上に [ジョブの状態] が表示されます。 この状態は、実験の進行に応じて更新されます。 スタジオの右上隅にも、実験の状態を表す通知が表示されます。

重要

実験の実行の準備に、10 から 15 分かかります。 実行の開始後、各イテレーションのためにさらに 2、3 分かかります。

運用環境では、しばらく席を離れるかもしれません。 ただし、このチュートリアルでは、他のイテレーションが実行中でも、アルゴリズムのテストが終わりしだい、 [モデル] タブで調査することをお勧めします。

モデルを調査する

[モデル] タブに移動し、テストされたアルゴリズム (モデル) を確認します。 既定では、モデルは完了時のメトリック スコアで並べ替えられます。 このチュートリアルでは、選択した AUC_weighted メトリックに基づいて最も高いスコアを獲得したモデルがリストの一番上に表示されます。

すべての実験モデルが終了するのを待っている間に、完了したモデルの [アルゴリズム名] を選択して、そのパフォーマンスの詳細を調査します。

次の例では、 [詳細][メトリック] のタブを移動して、選択したモデルのプロパティ、メトリック、およびパフォーマンス グラフを表示しています。

Run iteration detail

モデルの説明

モデルが完成するまで待つ間、モデルの説明を参照し、どのデータの特徴 (未加工または設計済み) が特定のモデルの予測に影響したかを確認することもできます。

これらのモデルの説明は、オンデマンドで生成することができます。モデルの説明ダッシュボードに [説明 (プレビュー)] タブの一部として概要が表示されます。

モデルの説明を生成するには、

  1. 上部にある [ジョブ 1] を選択し、[モデル] 画面に戻ります。

  2. [モデル] タブを選択します。

  3. このチュートリアルでは、最初の MaxAbsScaler、LightGBM モデルを選択します。

  4. 上部にある [Explain model](モデルの説明) ボタンを選択します。 右側には [Explain model](モデルの説明) ペインが表示されます。

  5. 以前に作成した automl-compute を選択します。 このコンピューティング クラスターにより、モデルの説明を生成する子ジョブが開始されます。

  6. 下部にある [作成] を選択します。 画面の上部に緑色の成功メッセージが表示されます。

    注意

    説明可能性のジョブが完了するまでに約 2 分から 5 分かかります。

  7. [説明 (プレビュー)] ボタンを選択します。 説明可能性の実行が完了すると、このタブに設定されます。

  8. 左側にあるペインを展開し、 [特徴] の下にある raw という行を選択します。

  9. 右側の [Aggregate feature importance](特徴量の重要度の集計) タブを選択します。 このグラフは、選択したモデルの予測に影響を与えたデータの特徴を示しています。

    この例では、"期間" がこのモデルの予測に最も影響を与えているように見えます。

    Model explanation dashboard

最適なモデルをデプロイする

自動機械学習インターフェイスを使用すると、わずかな手順で最良のモデルを Web サービスとしてデプロイすることができます。 デプロイとは、新しいデータを予測したり、潜在的な機会領域を特定したりできるようにモデルを統合することです。

この実験における Web サービスへのデプロイは、定期預金の潜在顧客を特定するためのスケーラブルな反復 Web ソリューションを金融機関が持つことを意味します。

実験の実行が完了したかどうかを確認します。 これを行うには、画面の上部にある [ジョブ 1] を選択して、親ジョブのページに戻ります。 画面の左上に完了状態が表示されます。

実験の実行が完了すると、 [詳細] ページに [Best model summary](最適なモデルの概要) セクションが設定されます。 この実験では、VotingEnsembleAUC_weighted メトリックに基づいて最適なモデルと見なされます。

このモデルをデプロイしますが、デプロイには完了まで約 20 分かかることにご留意ください。 デプロイ プロセスには、モデルを登録したり、リソースを生成したり、Web サービス用にそれらを構成したりすることを含む、いくつかの手順が伴います。

  1. [VotingEnsemble] を選択して、モデル固有のページを開きます。

  2. 左上にある [デプロイ] メニューを選択し、[Web サービスにデプロイする] を選びます。

  3. [Deploy a model](モデルのデプロイ) ペインに次のように入力します。

    フィールド
    デプロイ名 my-automl-deploy
    デプロイの説明 初めての自動機械学習実験のデプロイ
    コンピューティングの種類 Azure コンテナー インスタンス (ACI) の選択
    認証を有効にする 無効。
    Use custom deployments (カスタム デプロイを使用する) 無効。 既定のドライバー ファイル (スコアリング スクリプト) と環境ファイルが自動的に生成されます。

    この例では、 [Advanced](詳細) メニューに指定されている既定値を使用します。

  4. [デプロイ] を選択します。

    [ジョブ] 画面の上部に成功を示す緑色のメッセージが表示され、[モデルの概要] ペインの [Deploy status](デプロイ状態) にステータス メッセージが表示されます。 [最新の情報に更新] を定期的にクリックして、デプロイの状態を確認します。

これで、予測を生成するための実稼働 Web サービスが作成されました。

新しい Web サービスの使い方、Azure Machine Learning サポートに組み込まれている Power BI を使用した予測のテスト方法の詳細については、次のステップに進みます。

リソースをクリーンアップする

デプロイ ファイルはデータ ファイルと実験ファイルよりも大きいため、格納コストは高くなります。 アカウントのコストを最小限に抑える場合、またはワークスペースと実験ファイルを保持する場合は、デプロイ ファイルだけを削除します。 それ以外の場合で、いずれのファイルも使用する予定がない場合は、リソース グループ全体を削除します。

デプロイ インスタンスの削除

他のチュートリアルや探索用にリソース グループとワークスペースを維持する場合は、https://ml.azure.com/ で Azure Machine Learning からデプロイ インスタンスだけを削除します。

  1. Azure Machine Learning に移動します。 お使いのワークスペースに移動し、左側の [アセット] ウィンドウの下の [エンドポイント] を選択します。

  2. 削除するデプロイを選択し、 [削除] を選択します。

  3. [続行] を選択します。

リソース グループを削除します

重要

作成したリソースは、Azure Machine Learning に関連したその他のチュートリアルおよびハウツー記事の前提条件として使用できます。

作成したどのリソースも今後使用する予定がない場合は、課金が発生しないように削除します。

  1. Azure Portal で、左端にある [リソース グループ] を選択します。

  2. 一覧から、作成したリソース グループを選択します。

  3. [リソース グループの削除] を選択します。

    Screenshot of the selections to delete a resource group in the Azure portal.

  4. リソース グループ名を入力します。 次に、 [削除] を選択します。

次のステップ

この自動機械学習チュートリアルでは、Azure Machine Learning の自動 ML インターフェイスを使用して分類モデルの作成とデプロイを行いました。 詳細と次の手順については、次の記事を参照してください。

Note

この Bank Marketing データセットは、クリエイティブ コモンズ (CCO:パブリック ドメイン) ライセンスにより利用できます。 データベースの個々のコンテンツに含まれる権限は、データベース コンテンツ ライセンスによりライセンス供与され、Kaggle で入手できます。 このデータセットのオリジナルは、UCI Machine Learning データベースから入手できます。

[Moro その他、2014 年] S. Moro、P. Cortez、Rita。 銀行のテレマーケティングの成功を予測するためのデータドリブン アプローチ。 意思決定支援システム、Elsevier、62:22-31、2014 年 6 月。