次の方法で共有


チュートリアル: デザイナーを使用してコードなしの回帰モデルをトレーニングする

重要

この記事では、Azure Machine Learning SDK v1 の使用に関する情報を提供します。 SDK v1 は 2025 年 3 月 31 日の時点で非推奨となり、サポートは 2026 年 6 月 30 日に終了します。 SDK v1 は、その日付までインストールして使用できます。

2026 年 6 月 30 日より前に SDK v2 に移行することをお勧めします。 SDK v2 の詳細については、「 Azure Machine Learning Python SDK v2SDK v2 リファレンスとは」を参照してください。

この記事では、Azure Machine Learning デザイナーを使用して、自動車価格を予測する線形回帰モデルをトレーニングする方法について説明します。 このチュートリアルは、2 部構成のシリーズのパート 1 です。

デザイナーの詳細については、「Azure Machine Learning デザイナーとは」を参照してください。

注意

デザイナーでは、クラシック事前構築済みコンポーネント (v1) とカスタム コンポーネント (v2) の 2 種類のコンポーネントがサポートされています。 これら 2 種類のコンポーネントには互換性がありません。

従来の事前構築済みコンポーネントは、主にデータ処理と、回帰や分類などの従来の機械学習タスクを対象としています。 この種類のコンポーネントは引き続きサポートされますが、新しいコンポーネントは追加されません。

カスタム コンポーネントを使用すると、独自のコードをコンポーネントとしてラップすることができます。 これは、ワークスペース間での共有と、Studio、CLI v2、SDK v2 インターフェイス間でのシームレスなオーサリングをサポートします。

新しいプロジェクトでは、Azure Machine Learning V2 と互換性があり、引き続き新しい更新プログラムを受け取るカスタム コンポーネントを使用することを強くお勧めします。

この記事は、従来の事前構築済みコンポーネントに適用され、CLI v2 および SDK v2 との互換性はありません。

このチュートリアルでは、以下の内容を学習します。

  • 新しいパイプラインを作成する。
  • データをインポートする。
  • データを準備する。
  • 機械学習モデルをトレーニングする。
  • 機械学習モデルを評価する。

チュートリアルの パート 2 では、モデルをリアルタイム推論エンドポイントとしてデプロイし、送信する技術仕様に基づいて自動車の価格を予測します。

注意

このチュートリアルの完成したバージョンをサンプル パイプラインとして表示するには、「 回帰を使用して Azure Machine Learning デザイナーで自動車価格を予測する」を参照してください。

重要

このドキュメントで言及しているグラフィカル要素 (スタジオやデザイナーのボタンなど) が表示されない場合は、そのワークスペースに対する適切なレベルのアクセス許可がない可能性があります。 ご自分の Azure サブスクリプションの管理者に連絡して、適切なレベルのアクセス許可があることを確認してください。 詳細については、「ユーザーとロールを管理する」を参照してください。

新しいパイプラインを作成する

Azure Machine Learning パイプラインによって、複数の機械学習ステップとデータ処理ステップが 1 つのリソースに整理されます。 複数のプロジェクトや複数のユーザーにまたがる複雑な機械学習ワークフローをパイプラインで効率的に整理、管理、再利用することができます。

Azure Machine Learning パイプラインを作成するには、Azure Machine Learning ワークスペースが必要です。 このセクションでは、その両方のリソースを作成する方法について説明します。

新しいワークスペースを作成する

デザイナーを使用するには、Azure Machine Learning ワークスペースが必要です。 ワークスペースは、Azure Machine Learning の最上位のリソースです。 Azure Machine Learning で作成するすべての成果物を一元的に操作できます。 ワークスペースを作成する方法については、「ワークスペース リソースの作成」を参照してください。

注意

ワークスペースで仮想ネットワークを使用する場合は、デザイナーを使用するために追加の構成手順が必要です。 詳細については、「Azure 仮想ネットワークで Azure Machine Learning Studio を使用する」を参照してください。

パイプラインを作成する

  1. Azure Machine Learning Studio にサインインし、使用するワークスペースを選択します。

  2. サイドバー メニューから [デザイナー ] を選択します。 [ クラシック事前構築済み] で、[ クラシック事前構築済みコンポーネントを使用して新しいパイプラインを作成する] を選択します。

    デザイナーにアクセスする方法を示すビジュアル ワークスペースのスクリーンショット。

  3. 自動的に生成されたパイプラインドラフト名の横にある鉛筆アイコンを選択し、 自動車価格予測に名前を変更します。 名前は一意でなくてもかまいません。

    パイプラインの下書き名を変更する鉛筆アイコンのスクリーンショット。

データのインポート

デザイナーには、実験に利用できるいくつかのサンプル データセットが含まれています。 このチュートリアルでは、Automobile price data (Raw) を使用します。

  1. パイプライン キャンバスの左側には、データセットとコンポーネントのパレットがあります。 コンポーネント>サンプル データを選択します。

  2. Automobile price data (Raw) データセットを選択し、キャンバスにドラッグします。

    自動車価格データをキャンバスにドラッグする GIF。

データの視覚化

使用するデータセットを把握するために、データを視覚化することができます。

  1. [Automobile price data (Raw)] を右クリックし、[データのプレビュー] を選択します。

  2. データ ウィンドウで別の列を選択して、それぞれの情報を表示します。

    各行は自動車を表していて、各自動車に関連付けられている変数が列として表示されます。 このデータセット内には、205 の行と 26 の列があります。

データを準備する

通常、データセットには、分析前にある程度の前処理が必要です。 データセットを検査したときに、いくつか不足値があることに気付いたかもしれません。 モデルがデータを正しく分析するには、これらの不足値を整理する必要があります。

列の削除

モデルをトレーニングするときは、不足しているデータについて何らかの操作を行う必要があります。 このデータセットでは、 正規化された損失 列に多くの値が不足しているため、その列をモデルから完全に除外します。

  1. キャンバスの左側にあるデータセットとコンポーネント パレットで、[ コンポーネント ] を選択し、[ データセット内の列の選択] コンポーネントを検索します。

  2. [Select Columns in Dataset](データセットの列を選択する) コンポーネントをキャンバスにドラッグします。 そのコンポーネントをデータセット コンポーネントの下にドロップします。

  3. Automobile price data (Raw) データセットを、 [Select Columns in Dataset](データセットの列を選択する) コンポーネントに接続します。 データセットの出力ポート (キャンバス上のデータセットの下部にある小さい円) から [Select Columns in Dataset](データセットの列を選択する) の入力ポート (コンポーネントの上部にある小さい円) までドラッグします。

    ヒント

    1 つのコンポーネントの出力ポートを別のコンポーネントの入力ポートに接続するときに、パイプラインを通じてデータのフローを作成することになります。

    自動車価格データ コンポーネントを接続してデータセット コンポーネント内の列を選択することを示すアニメーション。

  4. [Select Columns in Dataset](データセットの列を選択する) コンポーネントを選択します。

  5. キャンバスの右側にある パイプライン インターフェイス の下にある矢印アイコンを選択して、コンポーネントの詳細ウィンドウを開きます。 または、[Select Columns in Dataset](データセットの列を選択する) コンポーネントをダブルクリックして詳細ウィンドウを開く方法もあります。

  6. ウィンドウの右側にある [列の編集] を選択します。

  7. [Include](対象) の横にある [列名] ボックスの一覧を展開し、[すべての列] を選びます。

  8. [+] を選択し、新しいルールを追加します。

  9. ドロップダウン メニューから [Exclude](除外)[列名] を選択します。

  10. テキスト ボックスに「normalized-losses」と入力します。

  11. 右下の [保存] を選択して列セレクターを閉じます。

    除外が強調表示されている選択列のスクリーンショット。

  12. [データセット内の列の選択] コンポーネントの詳細ウィンドウで、[ノード情報] を展開します。

  13. [コメント] ボックスを選択し、「Exclude normalized losses」と入力します。

    パイプラインの整理に役立つコメントがグラフに表示されます。

見つからないデータのクリーンアップ

normalized-losses 列を削除した後も、データセットにはまだ欠損値が存在します。 残りの欠損データは [Clean Missing Data](見つからないデータのクリーンアップ) コンポーネントを使用して削除できます。

ヒント

デザイナーでは、欠損値を入力データから取り除くことが、ほとんどのコンポーネントを使用するための前提条件となっています。

  1. キャンバスの左側にあるデータセットとコンポーネント パレットで、[ コンポーネント ] を選択し、[ 見つからないデータのクリーンアップ ] コンポーネントを検索します。

  2. [Clean Missing Data](見つからないデータのクリーンアップ) コンポーネントをパイプライン キャンバスにドラッグします。 それを [Select Columns in Dataset](データセットの列を選択する) コンポーネントに接続します。

  3. [Clean Missing Data](見つからないデータのクリーンアップ) コンポーネントを選択します。

  4. キャンバスの右側にある パイプライン インターフェイス の下にある矢印アイコンを選択して、コンポーネントの詳細ウィンドウを開きます。 または、[Clean Missing Data](見つからないデータのクリーンアップ) コンポーネントをダブルクリックして詳細ウィンドウを開く方法もあります。

  5. ウィンドウの右側にある [列の編集] を選択します。

  6. 表示される [クリーニング対象の列] ウィンドウで、 [含める] の横にあるドロップダウン メニューを展開します。 [すべての列] を選択します。

  7. 保存 を選択します。

  8. [Clean Missing Data](見つからないデータのクリーンアップ) コンポーネントの詳細ウィンドウの [クリーニング モード] で、[行全体の削除] を選択します。

  9. [ 見つからないデータのクリーンアップ ] コンポーネントの詳細ウィンドウで、[ ノード情報] を展開します。

  10. [コメント] テキスト ボックスを選択し、「Remove missing value rows」と入力します。

    これでパイプラインは次のようになっているはずです。

    [Automobile price data] が [Select Columns in Dataset] コンポーネントに接続され、さらに [Clean Missing Data] に接続されているスクリーンショット。

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

データを処理するためのコンポーネントが揃ったら、トレーニング コンポーネントを設定することができます。

予測したい価格は数値であるため、回帰アルゴリズムを使用できます。 この例では、線形回帰モデルを使用します。

データを分割する

データの分割は、機械学習における一般的なタスクです。 データを 2 つの独立したデータセットに分割します。 1 つのデータセットはモデルをトレーニングし、もう 1 つはモデルのパフォーマンスをテストします。

  1. キャンバスの左側にあるデータセットとコンポーネント パレットで、[ コンポーネント ] を選択し、[ データの分割 ] コンポーネントを検索します。

  2. [Split Data](データの分割) コンポーネントをパイプライン キャンバスにドラッグします。

  3. [Clean Missing Data](見つからないデータのクリーンアップ) コンポーネントの左側のポートを [Split Data](データの分割) コンポーネントに接続します。

    重要

    [Split Data](データの分割) には必ず、[Clean Missing Data](見つからないデータのクリーンアップ) の左側の出力ポートを接続してください。 クリーンアップされたデータは、左側のポートに格納されます。 右側のポートには、破棄されたデータが格納されます。

  4. [Split Data](データの分割) コンポーネントを選択します。

  5. キャンバスの右側にある パイプライン インターフェイス の下にある矢印アイコンを選択して、コンポーネントの詳細ウィンドウを開きます。 または、[Split Data](データの分割) コンポーネントをダブルクリックして詳細ウィンドウを開く方法もあります。

  6. [ データの分割 の詳細] ウィンドウ で、最初の出力データセットの行の比率0.7 に設定します。

    このオプションによって、データの 70% をモデルのトレーニング、30% をテストに分割します。 70% のデータセットには、左側の出力ポートからアクセスできます。 残りのデータは、右側の出力ポートから使用できます。

  7. [ データの分割 ] の詳細ウィンドウで、[ ノード情報] を展開します。

  8. [コメント] テキスト ボックスを選択し、「Split the dataset into training set (0.7) and test set (0.3)」と入力します。

モデルをトレーニングする

価格が含まれたデータセットを指定して、モデルをトレーニングします。 トレーニング データによって提示された価格と特徴との間の関係を説明するモデルがアルゴリズムによって構築されます。

  1. キャンバスの左側にあるデータセットとコンポーネント パレットで、[ コンポーネント ] を選択し、[ 線形回帰 ] コンポーネントを検索します。

  2. [Linear Regression](線形回帰) コンポーネントをパイプライン キャンバスにドラッグします。

  3. キャンバスの左側にあるデータセットとコンポーネント パレットで、[ コンポーネント ] を選択し、[ モデルのトレーニング ] コンポーネントを検索します。

  4. [Train Model](モデルのトレーニング) コンポーネントをパイプライン キャンバスにドラッグします。

  5. [Linear Regression](線形回帰) コンポーネントの出力を [Train Model](モデルのトレーニング) コンポーネントの左側の入力に接続します。

  6. [Split Data](データの分割) コンポーネントのトレーニング データ出力 (左側のポート) を [Train Model](モデルのトレーニング) コンポーネントの右側の入力に接続します。

    重要

    [Train Model](モデルのトレーニング) には必ず、[Split Data](データの分割) の左側の出力ポートを接続してください。 トレーニング セットは、左側のポートに格納されます。 右側のポートには、テスト セットが格納されます。

    Linear Regression (線形回帰) が、Train Model (モデルのトレーニング) の左側のポートに接続され、Split Data (データの分割) が、Train Model (モデルのトレーニング) の右側のポートに接続されていることを示すスクリーンショット。

  7. [Train Model](モデルのトレーニング) コンポーネントを選択します。

  8. キャンバスの右側にある パイプライン設定 の下にある矢印アイコンを選択して、コンポーネントの詳細ウィンドウを開きます。 または、[Train Model](モデルのトレーニング) コンポーネントをダブルクリックして詳細ウィンドウを開く方法もあります。

  9. ウィンドウの右側にある [列の編集] を選択します。

  10. 表示された [Label column](ラベル列) ウィンドウのドロップダウン メニューを展開して [列名] を選択します。

  11. テキスト ボックスに「price」(価格) を入力して、モデルで予測しようとする値を指定します。

    重要

    列名を正確に入力してください。 価格を大文字にしないでください。

    パイプラインは次のようになっているはずです。

    Train Model コンポーネントを追加した後のパイプラインの正しい構成を示すスクリーンショット。

[Score Model](モデルのスコア付け) コンポーネントを追加する

データの 70% を使用してモデルをトレーニングした後で、残りの 30% にスコアを付け、モデルの精度を確認します。

  1. キャンバスの左側にあるデータセットとコンポーネント パレットで、[ コンポーネント ] を選択し、[ モデルのスコア付け ] コンポーネントを検索します。

  2. [Score Model](モデルのスコア付け) コンポーネントをパイプライン キャンバスにドラッグします。

  3. [Train Model](モデルのトレーニング) コンポーネントの出力を、 [Score Model](モデルのスコア付け) の左側の入力ポートに接続します。 [Split Data](データの分割) コンポーネントのテスト データの出力 (右側のポート) を、 [Score Model](モデルのスコア付け) の右側の入力ポートに接続します。

[Evaluate Model](モデルの評価) コンポーネントを追加する

モデルがどの程度の精度でテスト データセットにスコア付けしたかを、 [Evaluate Model](モデルの評価) コンポーネントを使用して評価します。

  1. キャンバスの左側にあるデータセットとコンポーネント パレットで、[ コンポーネント ] を選択し、[ モデルの評価 ] コンポーネントを検索します。

  2. [Evaluate Model](モデルの評価) コンポーネントをパイプライン キャンバスにドラッグします。

  3. [Score Model](モデルのスコア付け) コンポーネントの出力を、 [Evaluate Model](モデルの評価) の左側の入力に接続します。

    最終的なパイプラインは次のようになっているはずです。

    パイプラインの正しい構成を示すスクリーンショット。

パイプラインを送信する

  1. 右上隅にある [構成] & [送信] を選択してパイプラインを送信します。

  2. ステップ バイ ステップ ウィザードが表示されたら、ウィザードに従ってパイプライン ジョブを送信します。

    送信ウィザードを示すスクリーンショット。

    [基本] では、実験、ジョブの表示名、ジョブの説明などを構成できます。

    入力と出力では、パイプライン レベルに昇格される入力と出力に値を割り当てることができます。 入力または出力をパイプライン レベルに昇格しなかったため、この例では空です。

    [ランタイムの設定] では、パイプラインの既定のデータストアと既定のコンピューティングを構成できます。 これは、パイプライン内のすべてのコンポーネントの既定のデータストアとコンピューティングです。 ただし、コンポーネントに対して別のコンピューティングまたはデータストアを明示的に設定した場合、システムはコンポーネント レベルの設定を考慮します。 そうでない場合は、既定値を使用します。

    [レビュー + 送信] ステップは、送信する前にすべての設定を確認するための最後のステップです。 パイプラインを送信した場合、ウィザードは最後の構成を記憶します。

パイプライン ジョブを送信すると、上部にジョブの詳細へのリンクを含むメッセージが表示されます。 このリンクを選択して、ジョブの詳細を確認できます。

送信メッセージを示すスクリーンショット。

スコア付けラベルを確認する

ジョブの詳細ページでは、パイプライン ジョブの状態、結果、ログを確認できます。

ジョブが完了したら、パイプライン ジョブの結果を確認できます。 まず、回帰モデルによって生成された予測に注目します。

  1. [モデルのスコア付け] コンポーネントを右クリックし、[データのプレビュー]>[スコアリング済みデータセット] の順に選択してその出力を表示します。

    ここでは、予測された価格と、データのテストによる実際の価格を確認できます。

    [Scored Label]\(スコア付けされたラベル\) 列が強調表示されている出力視覚化のスクリーンショット。

モデルを評価する

テスト データセットに対してトレーニング済みのモデルがどの程度の精度で実行されたかを [Evaluate Model](モデルの評価) を使用して確認します。

  1. [モデルの評価] コンポーネントを右クリックし、[データのプレビュー]>[評価結果] の順に選択してその出力を表示します。

作成したモデルに対して、以下の統計値が表示されます。

  • Mean Absolute Error (MAE、平均絶対誤差):絶対誤差の平均。 エラーは、 予測 値と 実際 の値の差です。
  • Root Mean Squared Error (RMSE、二乗平均平方根誤差):テスト データセットに対して実行した予測の二乗誤差平均の平方根です。
  • Relative Absolute Error (相対絶対誤差):実際の値とすべての実際の値の平均との絶対差を基準にした絶対誤差の平均です。
  • Relative Squared Error (相対二乗誤差):実際の値とすべての実際の値の平均との二乗差を基準にした二乗誤差の平均です。
  • Coefficient of Determination (決定係数):R-2 乗値ともいいます。どの程度モデルが高い精度でデータと適合するかを示す統計指標です。

この誤差の統計情報は、それぞれ小さいほど良いとされます。 値が小さいほど、予測が実際の値により近いことを示します。 決定係数では、値が 1 (1.0) に近づくほど、予測の精度が高くなります。

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

続けてチュートリアルのパート 2 (モデルのデプロイ) を行う場合は、このセクションはスキップしてください。

重要

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

すべてを削除する

作成したすべてのものを使用する予定がない場合は、料金が発生しないように、リソース グループ全体を削除します。

  1. Azure portal で、ウィンドウの左側にある [リソース グループ] を選択します。

    Azure portal でリソース グループを削除する

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

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

リソース グループを削除すると、デザイナーで作成したすべてのリソースも削除されます。

個々の資産を削除する

実験を作成したデザイナーで、個々の資産を選択し、[削除] ボタンを選択してそれらを削除します。

ここで作成したコンピューティング ターゲットは、使用されていない場合、自動的にゼロ  ノードに自動スケーリングされます。 このアクションは、料金を最小限に抑えるために実行されます。 コンピューティング ターゲットを削除する場合は、次の手順を実行してください。

アセットを削除する

各データセットを選択し、[登録解除] を選択することによって、ワークスペースからデータセットを登録解除できます。

データセットを登録解除する

データセットを削除するには、Azure portal または Azure Storage Explorer を使用してストレージ アカウントに移動し、これらのアセットを手動で削除します。

次のステップ

パート 2 では、モデルをリアルタイム エンドポイントとしてデプロイする方法を学習します。