スタジオ UI を使用してコード不要の自動 ML トレーニングを設定する

この記事では、Azure Machine Learning スタジオで Azure Machine Learning の自動 ML を使用して、コードを 1 行も記述せずに自動 ML トレーニング ジョブを設定する方法について説明します。

自動機械学習 (自動 ML) は、特定のデータに使用する最適な機械学習アルゴリズムが自動的に選択されるプロセスです。 このプロセスにより、機械学習モデルを迅速に生成できます。 Azure Machine Learning での自動機械学習の実装の詳細を参照してください

エンド ツー エンドの例については、自動 ML によるコードなし分類モデルのトレーニングに関するチュートリアルを試してください。

Python コードベースのエクスペリエンスでは、Azure Machine Learning SDK を使用して、自動化された機械学習の実験を構成することもできます。

前提条件

はじめに

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

  2. サブスクリプションとワークスペースを選択します。

  3. 左ウィンドウに移動します。 [作成者] セクションで [Automated ML](自動 ML) を選択します。

Azure Machine Learning Studio のナビゲーション パネル

これが初めて実行する実験である場合、空のリストとドキュメントへのリンクが表示されます。

それ以外の場合は、SDK で作成されたものも含め、最近の自動 ML 実験の一覧が表示されます。

実験を作成して実行する

  1. [+ 新規の自動機械学習ジョブ] を選択し、フォームを設定します。

  2. ストレージ コンテナーからデータ資産を選択するか、新しいデータ資産を作成します。 データ資産は、ローカル ファイル、Web URL、データストア、または Azure Open Datasets から作成できます。 データ資産の作成についてさらに学習してください。

    重要

    トレーニング データの要件:

    • データは表形式である必要があります。
    • 予測する値 (ターゲット列) は、データ内に存在する必要があります。
    1. ローカル コンピューター上のファイルから新しいデータセットを作成するには、 [+データセットの作成] を選択してから、 [ローカル ファイルから] を選択します。

    2. [基本情報] フォームで、データセットに一意の名前を付けて、必要に応じて説明を入力します。

    3. [次へ] を選択して、 [データストアとファイルの選択] フォームを開きます。 このフォームで、データセットのアップロード先を選択します。ワークスペースで自動的に作成される既定のストレージ コンテナーか、実験に使用するストレージ コンテナーを選択します。

      1. データが仮想ネットワークの背後にある場合は、検証をスキップする機能を有効にして、ワークスペースがデータにアクセスできることを確認する必要があります。 詳細については、「Azure 仮想ネットワークで Azure Machine Learning Studio を使用する」を参照してください。
    4. [参照] を選択してデータセットのデータ ファイルをアップロードします。

    5. [Settings and preview]/(設定とプレビュー/) フォームで入力が正しいか確認します。 フォームはファイルの種類に基づいてインテリジェントに設定されます。

      フィールド 説明
      ファイル形式 ファイルに格納されているデータのレイアウトと種類を定義します。
      区切り記号 プレーン テキストまたは他のデータ ストリーム内の個別の独立した領域の間の境界を指定するための 1 つ以上の文字。
      エンコード データセットの読み取りに使用する、ビットと文字のスキーマ テーブルを識別します。
      列見出し データセットの見出しがある場合、それがどのように処理されるかを示します。
      行のスキップ データセット内でスキップされる行がある場合、その行数を示します。

      [次へ] を選択します。

    6. [Settings and preview](設定とプレビュー) フォームでの選択に基づいて、 [Schema](スキーマ) フォームがインテリジェントに設定されます。 ここでは、各列のデータ型を構成し、列名を確認し、実験に含めない列を選択します。

      [次へ] を選択します。

    7. [詳細の確認] フォームは、 [基本情報] および [設定とプレビュー] のフォームに以前に入力された情報の概要です。 プロファイリングが有効になっているコンピューティングを使用してデータセットのデータ プロファイルを作成するオプションもあります。 データ プロファイルについてさらに理解を深める。

      [次へ] を選択します。

  3. 新しく作成したデータセットが表示されたら、それを選択します。 また、データセットとサンプル統計のプレビューを表示することもできます。

  4. [ジョブの構成] フォームで、[新規作成] を選択し、実験名として「Tutorial-automl-deploy」と入力します。

  5. ターゲット列を選択します。これは、予測を実行する列です。

  6. データ プロファイルとトレーニング ジョブのコンピューティング タイプを選択します。 コンピューティング クラスターまたはコンピューティング インスタンスを選択できます。

  7. 既存のコンピューティングのドロップダウン リストからコンピューティングを選択します。 新しいコンピューティングを作成するには、ステップ 7 の手順に従います。

  8. [Create a new compute](新しいコンピューティングの作成) を選択して、この実験のコンピューティング コンテキストを構成します。

    フィールド 説明
    コンピューティング名 コンピューティング コンテキストを識別する一意名を入力します。
    仮想マシンの優先度 低優先度の仮想マシンは低コストですが、コンピューティング ノードが保証されません。
    仮想マシンのタイプ 仮想マシンのタイプとして [CPU] または [GPU] を選択します。
    仮想マシンのサイズ コンピューティングの仮想マシン サイズを選択します。
    最小/最大ノード データをプロファイリングするには、1 つ以上のノードを指定する必要があります。 コンピューティングの最大ノード数を入力します。 AzureML コンピューティングの既定は 6 ノードです。
    詳細設定 これらの設定を使用すると、ユーザー アカウントと、実験用の既存の仮想ネットワークを構成できます。

    [作成] を選択します 新しいコンピューティングの作成には数分かかる場合があります。

    注意

    コンピューティング名は、選択または作成するコンピューティングでプロファイルが有効になっているかどうかを示します (詳細については、データ プロファイルに関するセクションを参照してください)。

    [次へ] を選択します。

  9. [Task type and settings](タスクの種類と設定) フォームで、[classification](分類)、[regression](回帰)、または [forecasting](予測) のタスクの種類を選択します。 サポートされるタスクの種類に関する記事を参照してください。

    1. [分類] については、ディープ ラーニングを有効にすることもできます。

      ディープ ラーニングが有効になっている場合、検証は train_validation split に制限されます。 検証オプションの詳細を確認してください

    2. 予測のためには、以下が可能です。

      1. ディープ ラーニングを有効にします。

      2. 時間列を選択します。この列には、使用する時間データが含まれています。

      3. 予測期間を選択します。モデルで将来を予測できる時間単位 (分/時間/日/週/月/年) の数を示します。 モデルで将来を予測する期間が延びるほど、正確性が下がります。 予測と予測期間の詳細については、こちらを参照してください

  10. (省略可能) 追加の構成設定の表示: トレーニング ジョブをより細かく制御するのに使用できる追加の設定です。 設定しない場合、実験の選択とデータに基づいて既定値が適用されます。

    追加の構成 説明
    主要メトリック モデルをスコアリングするために使用される主なメトリックです。 モデルのメトリックの詳細については、こちらを参照してください
    最適なモデルの説明 推奨される最適なモデルの説明を表示するために、選択して有効または無効にします。
    この機能は、特定の予測アルゴリズムでは現在使用できません。
    Blocked algorithm (ブロックするアルゴリズム) トレーニング ジョブから除外するアルゴリズムを選択します。

    許可するアルゴリズムは、SDK 実験でのみ使用できます。
    各タスクの種類でサポートされているアルゴリズムに関するページを参照してください。
    終了条件 これらの基準のどれかが満たされると、トレーニング ジョブが終了します。
    トレーニング ジョブ時間 (時間単位) :トレーニング ジョブを実行できる時間の長さ。
    メトリック スコアのしきい値: すべてのパイプラインの最小メトリック スコアです。 これにより、達成目標のターゲット メトリックを定義した場合には、必要以上にトレーニング ジョブに時間を費やすことはなくなります。
    コンカレンシー コンカレント イテレーションの最大数:トレーニング ジョブでテストするパイプライン (イテレーション) の最大数。 ジョブは、指定したイテレーションの数より多く実行されることはありません。 自動 ML によるクラスターでの複数の子ジョブの実行方法に関する詳細を説明します。
  11. (任意) 特徴量化の設定を表示する: 追加の構成設定フォームで自動を特徴量化を有効にすることを選択した場合、既定の特徴量化手法が適用されます。 特徴量化の表示設定でこれらの既定値を変更し、それに応じてカスタマイズすることができます。 特徴量化をカスタマイズする方法をご覧ください。

    [特徴量化設定の表示] が強調表示された [タスクの種類を選択] ダイアログ ボックスを示すスクリーンショット。

  12. [[Optional] Validate and test]([省略可能] 検証とテスト) フォームで、次の操作を行うことができます。

    1. トレーニング ジョブに使用する検証の種類を指定します。 クロス検証の詳細については、こちらを参照してください

      1. 予測タスクでは、k 分割交差検証のみがサポートされます。
    2. テスト データセット (プレビュー) を指定して、実験の最後に自動 ML によって生成される推奨モデルを評価します。 テスト データを指定すると、実験の最後にテスト ジョブが自動的にトリガーされます。 このテスト ジョブは、自動 ML によって推奨された最適なモデルでのみ実行されます。 リモート テスト ジョブの結果を取得する方法について学習します。

      重要

      生成されたモデルを評価するためのテスト データセットの提供は、プレビュー機能です。 この機能は試験段階のプレビュー機能であり、随時変更される可能性があります。

      • テスト データは、推奨モデルのテスト ジョブの結果に偏りが出ないように、トレーニングと検証とは別のものと見なされます。 モデル検証中のバイアスの詳細について確認してください
      • 独自のテスト データセットを指定するか、トレーニング データセットの割合を使用することを選択できます。 テスト データは Azure Machine Learning TabularDataset 形式にする必要があります。
      • テスト データセットのスキーマは、トレーニング データセットと一致する必要があります。 ターゲット列は省略可能ですが、ターゲット列が示されていない場合、テスト メトリックは計算されません。
      • テスト データセットは、トレーニング データセットまたは検証データセットと同じにすべきではありません。
      • 予測ジョブでは、トレーニングとテスト分割はサポートされていません。

      検証データとテスト データを選択するフォームを示すスクリーンショット

特徴量化をカスタマイズする

特徴量化フォームでは、自動特徴量化を有効または無効にしたり、実験の自動特徴量化設定をカスタマイズしたりできます。 このフォームを開くには、「実験を作成して実行する」セクションのステップ 10 を参照してください。

次の表は、現在、スタジオで使用可能なカスタマイズの概要です。

カスタマイズ
Included トレーニングに含める列を指定します。
特徴の種類 選択された列の値の型を変更します。
次で補完 データの欠損値を補完する値を選択します。

Azure Machine Learning Studio カスタム特徴量化

実験を実行して結果を表示

[完了] を選択して実験を実行します。 実験の準備プロセスには最大で 10 分かかることがあります。 トレーニング ジョブで各パイプラインの実行を完了するには、さらに 2 ~ 3 分かかる場合があります。

注意

自動 ML のアルゴリズムには特有のランダム性があり、推奨モデルの最終的なメトリック スコア (精度など) にわずかな変動が生じる可能性があります。 自動 ML によって、トレーニングとテストの分割、トレーニングと検証の分割、クロス検証などのデータに対する操作も必要に応じて実行されます。 そのため、同じ構成設定とプライマリ メトリックを使用して実験を複数回実行した場合、これらの要因により、各実験の最終的なメトリック スコアに変動が見られる可能性があります。

実験の詳細の表示

[ジョブの詳細] 画面が開き、 [詳細] タブが表示されます。この画面には、上部のジョブ番号の横のステータス バーを含む実験ジョブの概要が表示されます。

[Models](モデル) タブには、メトリック スコアの順で作成されたモデルの一覧が表示されます。 既定では、選択したメトリックに基づいて最高のスコアを付けたモデルが、一覧の先頭になります。 トレーニング ジョブでその他のモデルを試みると、それらが一覧に追加されます。 これを使用すると、これまでに生成されたモデルのメトリックを簡単に比較できます。

ジョブの詳細

トレーニング ジョブの詳細を表示する

完成したモデルのいずれかをドリル ダウンして、トレーニング ジョブの詳細を表示します。 [モデル] タブでは、モデルの概要や、選択したモデルに使用されるハイパー パラメーターなどの詳細が表示されます。

ハイパーパラメーターの詳細

[メトリック] タブには、モデル固有のパフォーマンス メトリック グラフも表示されます。グラフの詳細を確認してください。

イテレーションの詳細

[データ変換] タブには、このモデルを生成するために適用されたデータ前処理、特徴エンジニアリング、スケーリング手法、機械学習アルゴリズムの図が表示されます。

重要

[データ変換] タブはプレビュー段階にあります。 この機能は試験段階と見なされ、随時変更される可能性があります。

データの変換

リモート テスト ジョブの結果を表示する (プレビュー)

テスト データセットを指定した場合、または実験のセットアップ中にトレーニングまたはテスト分割を選択した場合、 [Validate and test](検証とテスト) フォームで、自動 ML では、既定で推奨されるモデルを自動的にテストします。 その結果、自動 ML によりテスト メトリックが計算され、推奨されるモデルの品質とその予測が決定されます。

重要

生成されたモデルを評価するためにテスト データセットを使ってモデルをテストする機能はプレビュー段階です。 この機能は試験段階のプレビュー機能であり、随時変更される可能性があります。

推奨されるモデルのテスト ジョブのメトリックを表示するには、次のようにします。

  1. [モデル] ページに移動し、最適なモデルを選択します。
  2. [テスト結果 (プレビュー)] タブを選択します。
  3. 目的のジョブを選択し、[メトリック] タブを表示します。自動的にテストされる、推奨モデルの [テスト結果] タブ

テスト メトリックの計算に使用されるテスト予測を表示するには、次のようにします。

  1. ページの下部に移動し、 [出力データセット] の下にあるリンクを選択して、データセットを開きます。
  2. [データセット] ページで、[探索] タブを選択して、テスト ジョブからの予測を表示します。
    1. または、予測ファイルを [出力とログ] タブから表示またはダウンロードすることもできます。Predictions フォルダーを展開して、predicted.csv ファイルを見つけます。

または、予測ファイルを [出力とログ] タブから表示またはダウンロードすることもできます。Predictions フォルダーを展開して、predictions.csv ファイルを見つけます。

モデル テスト ジョブでは、predictions.csv ファイルが生成され、ワークスペースで作成された既定のデータストアに格納されます。 このデータストアは、同じサブスクリプションを持つすべてのユーザーに表示されます。 テスト ジョブは、テスト ジョブで使用または作成された情報を非公開にする必要があるシナリオにはお勧めできません。

既存の自動 ML モデルをテストする (プレビュー)

重要

生成されたモデルを評価するためにテスト データセットを使ってモデルをテストする機能はプレビュー段階です。 この機能は試験段階のプレビュー機能であり、随時変更される可能性があります。

実験が完了したら、自動 ML によって自動的に生成されるモデルをテストできます。 推奨されるモデルではなく、別の 自動 ML 生成モデルをテストする場合は、次の手順を行います。

  1. 既存の 自動 ML 実験ジョブを選択します。

  2. ジョブの [モデル] タブに移動し、テストする完成モデルを選択します。

  3. モデルの [詳細] ページで、 [Test model (preview)](モデルのテスト (プレビュー)) ボタンを選択して、 [Test model](モデルのテスト) ペインを開きます。

  4. [テスト モデル] ペインで、テスト ジョブに使用するコンピューティング クラスターとテスト データセットを選択します。

  5. [テスト] ボタンを選択します。 テスト データセットのスキーマは、トレーニング データセットと一致する必要がありますが、ターゲット列は省略可能です。

  6. モデル テスト ジョブが正常に作成されると、[詳細] ページに成功メッセージが表示されます。 [テスト結果] タブを選択して、ジョブの進行状況を確認します。

  7. テスト ジョブの結果を表示するには、[詳細] ページを開き、「リモート テスト ジョブの結果を表示する」セクションの手順に従います。

    [Test model]\(モデルのテスト\) フォーム

モデルの説明 (プレビュー)

モデルについて理解を深めるために、モデルの説明ダッシュボードを使用して、モデルの予測に影響を与えたデータ機能 (未加工または処理適用) を確認できます。

モデルの説明ダッシュボードには、トレーニングされたモデルの全体的な分析と共にその予測と説明が表示されます。 また、個々のデータ ポイントと個々の特徴量の重要度にドリル ダウンすることもできます。 説明ダッシュボードの視覚化について詳細を確認してください

特定のモデルの説明を取得するには、次の手順を実行します。

  1. [モデル] タブで、理解を深めるモデルを選択します。

  2. [モデルの説明] ボタンを選択し、説明の生成に使用できるコンピューティングを提供します。

  3. [Child jobs](子ジョブ) タブで状態を確認します。

  4. 完了したら、説明ダッシュボードが含まれている [説明 (プレビュー)] タブに移動します。

    モデルの説明ダッシュボード

ジョブの編集と送信 (プレビュー)

重要

既存の実験に基づいて新しい実験をコピー、編集、送信する機能は、プレビュー機能です。 この機能は試験段階のプレビュー機能であり、随時変更される可能性があります。

既存の実験の設定に基づいて新しい実験を作成するシナリオの場合、自動 ML では、スタジオ UI の [編集と送信] ボタンを使用したそのためのオプションが提供されます。

この機能は、スタジオ UI から開始された実験に限定され、新しい実験のデータ スキーマが元の実験のものと一致する必要があります。

[編集と送信] ボタンをクリックすると、データ、コンピューティング、事前に設定済みの実験設定が反映された [新しい自動 ML ジョブの作成] ウィザードが開きます。 新しい実験の必要に応じて、各フォームを確認し、選択内容を編集できます。

モデルをデプロイする

最適なモデルを作成したら、Web サービスとしてデプロイして新しいデータで予測します。

ヒント

Python SDK が含まれる automl パッケージで生成されたモデルをデプロイする場合、ワークスペースにモデルを登録する必要があります。

モデルが登録されたら、左側のウィンドウで [モデル] を選択し、スタジオでモデルを見つけます。 モデルを開いたら、画面上部にある [デプロイ] ボタンを選択し、「モデルをデプロイする」セクションの手順 2 にある指示に従うことができます。

自動化された ML は、コードを記述せずにモデルをデプロイするのに役立ちます。

  1. デプロイ オプションはいくつかあります。

    • オプション 1: 定義したメトリック条件に従って、最適なモデルをデプロイします。

      1. 実験が完了したら、画面の上部にある [ジョブ 1] を選択して、親ジョブ ページに移動します。
      2. [Best model summary] (最適なモデルの概要) セクションに一覧表示されている、目的のモデルを選択します。
      3. ウィンドウの左上にある [デプロイ] を選択します。
    • オプション 2:この実験から特定のモデル イテレーションをデプロイする場合。

      1. [モデル] タブから目的のモデルを選択します
      2. ウィンドウの左上にある [デプロイ] を選択します。
  2. [Deploy model](モデルのデプロイ) ペインにデータを入力します。

    フィールド
    名前 デプロイの一意の名前を入力します。
    説明 このデプロイの目的を識別しやすくするための説明を入力します。
    コンピューティングの種類 デプロイするエンドポイントの種類 (Azure Kubernetes Service (AKS) または Azure Container Instance (ACI)) を選択します。
    コンピューティング名 AKS にのみ適用されます。 デプロイする AKS クラスターの名前を選択します。
    認証を有効にする トークンベースまたはキーベースの認証を許可する場合に選択します。
    カスタム デプロイ アセットを使用する 独自のスコアリング スクリプトと環境ファイルをアップロードする場合は、この特徴量を有効にします。 それ以外の場合、既定で、これらのアセットが自動 ML によって提供されます。 スコアリング スクリプトの詳細を確認してください。

    重要

    ファイル名の文字数は 32 文字未満にする必要があります。先頭と末尾には英数字を使用してください。 先頭と末尾以外では、ダッシュ、アンダースコア、ピリオド、および英数字を使用できます。 スペースは使用できません。

    "詳細設定" メニューには、データ収集やリソース使用率の設定などの既定のデプロイ特徴量が用意されています。 これらの既定値をオーバーライドする場合は、このメニューでオーバーライドします。

  3. [デプロイ] を選択します。 デプロイの完了には 20 分程度かかる場合があります。 デプロイが開始されると、 [モデルの概要] タブが表示されます。 [Deploy status](デプロイの状態) セクションで、デプロイの進行状況を確認します。

これで、予測を生成するための運用 Web サービスが作成されました。 予測をテストするには、Power BI の組み込みの Azure Machine Learning サポートからサービスのクエリを実行します。

次のステップ