チュートリアル 3:信用リスク モデルをデプロイする - Azure Machine Learning Studio (クラシック)Tutorial 3: Deploy credit risk model - Azure Machine Learning Studio (classic)

このチュートリアルでは、予測分析ソリューションを開発するプロセスについて詳しく説明します。In this tutorial, you take an extended look at the process of developing a predictive analytics solution. Machine Learning Studio (クラシック) で単純なモデルを開発します。You develop a simple model in Machine Learning Studio (classic). その後、そのモデルを Azure Machine Learning Web サービスとしてデプロイします。You then deploy the model as an Azure Machine Learning web service. このデプロイ モデルは、新しいデータを使用して予測を行うことができます。This deployed model can make predictions using new data. このチュートリアルは、3 部構成のチュートリアル シリーズのパート 3 です。This tutorial is part three of a three-part tutorial series.

クレジットの申請書に記入する情報に基づいて個人のクレジット リスクを予測する必要があるとします。Suppose you need to predict an individual's credit risk based on the information they gave on a credit application.

信用リスクの評価は複雑な問題ですが、このチュートリアルでは、それを少し簡略化してみます。Credit risk assessment is a complex problem, but this tutorial will simplify it a bit. Microsoft Azure Machine Learning Studio (クラシック) を使用して予測分析ソリューションを作成する方法の例として使用してください。You'll use it as an example of how you can create a predictive analytics solution using Microsoft Azure Machine Learning Studio (classic). このソリューションでは、クラシック バージョンの Azure Machine Learning Studio と Machine Learning Web サービスを使用します。You'll use the classic version of Azure Machine Learning Studio and a Machine Learning web service for this solution.

この 3 部構成のチュートリアルでは、まず、公表されている信用リスク データを使用します。In this three-part tutorial, you start with publicly available credit risk data. その後、予測モデルを開発してトレーニングします。You then develop and train a predictive model. 最後にそのモデルを Web サービスとしてデプロイします。Finally you deploy the model as a web service.

チュートリアルのパート 1 では、Machine Learning Studio (クラシック) ワークスペースを作成し、データをアップロードし、実験を作成しました。In part one of the tutorial, you created a Machine Learning Studio (classic) workspace, uploaded data, and created an experiment.

チュートリアルのパート 2 では、モデルをトレーニングして評価しました。In part two of the tutorial, you trained and evaluated models.

チュートリアルのこのパートでは、次のことを行います。In this part of the tutorial you:

  • デプロイの準備をするPrepare for deployment
  • Web サービスをデプロイするDeploy the web service
  • Web サービスをテストするTest the web service
  • Web サービスを管理するManage the web service
  • Web サービスにアクセスするAccess the web service

前提条件Prerequisites

チュートリアルのパート 2 を完了していること。Complete part two of the tutorial.

デプロイの準備をするPrepare for deployment

このチュートリアルで作成した予測モデルを他のユーザーが使用できるように、Web サービスとして Azure にデプロイできます。To give others a chance to use the predictive model you've developed in this tutorial, you can deploy it as a web service on Azure.

これまでは、モデルのトレーニングを実験してきました。Up to this point you've been experimenting with training our model. ただし、デプロイするサービスのトレーニングはこれ以上行われません。サービスは、モデルに基づいてユーザーの入力をスコア付けすることで新しい予測を生成します。But the deployed service is no longer going to do training - it's going to generate new predictions by scoring the user's input based on our model. このため、この実験を "トレーニング" 実験から "予測" 実験に変換するための準備をします。So we're going to do some preparation to convert this experiment from a training experiment to a predictive experiment.

デプロイの準備は、3 ステップのプロセスです。Preparation for deployment is a three-step process:

  1. モデルのいずれかを削除するRemove one of the models
  2. 作成した "トレーニング実験" を "予測実験" に変換するConvert the training experiment you've created into a predictive experiment
  3. Web サービスとして予測実験をデプロイするDeploy the predictive experiment as a web service

モデルのいずれかを削除するRemove one of the models

最初に、この実験を少しスリム化する必要があります。First, you need to trim this experiment down a little. 現在、実験には 2 つの異なるモデルがありますが、Web サービスとしてデプロイするサービスでは、モデルは 1 つだけ使用します。you currently have two different models in the experiment, but you only want to use one model when you deploy this as a web service.

ブースト ツリー モデルの方が SVM モデルより優れていると判断したものとします。Let's say you've decided that the boosted tree model performed better than the SVM model. このため、最初に実行するのは、2 クラス サポート ベクター マシン モジュールと、それをトレーニングするために使用したモジュールの削除です。So the first thing to do is remove the Two-Class Support Vector Machine module and the modules that were used for training it. まずは実験キャンバスの下にある [名前を付けて保存] をクリックして実験のコピーを作成します。You may want to make a copy of the experiment first by clicking Save As at the bottom of the experiment canvas.

次のモジュールを削除する必要があります。you need to delete the following modules:

各モジュールを選択して Delete キーを押すか、モジュールを右クリックして [削除] を選択します。Select each module and press the Delete key, or right-click the module and select Delete.

サポート ベクター マシン モデルを削除するために、削除するモジュールを強調表示

これでモデルは次のようになるはずです。Our model should now look something like this:

サポート ベクター マシン モデルが削除されたときの結果の実験

これで、2 クラス ブースト デシジョン ツリーを使用するモデルをデプロイする準備ができました。Now we're ready to deploy this model using the Two-Class Boosted Decision Tree.

トレーニング実験を予測実験に変換するConvert the training experiment to a predictive experiment

このモデルをデプロイできるよう準備するには、このトレーニング実験を予測実験に変換する必要があります。To get this model ready for deployment, you need to convert this training experiment to a predictive experiment. これを行うには、3 つの手順を実行します。This involves three steps:

  1. トレーニングしたモデルを保存し、トレーニング モジュールを置き換えます。Save the model you've trained and then replace our training modules
  2. 実験をトリミングしてトレーニングのためのみに必要だったモジュールを削除します。Trim the experiment to remove modules that were only needed for training
  3. Web サービスが入力を受け取る場所と出力を生成する場所を定義しますDefine where the web service will accept input and where it generates the output

この 3 つの手順は手動でも実行できますが、幸いにも、実験キャンバスの下部にある [Set Up Web Service](Web サービスの設定) をクリックすることですべての手順を完了できます ( [Predictive Web Service](予測 Web サービス) オプションを選択します)。you could do this manually, but fortunately all three steps can be accomplished by clicking Set Up Web Service at the bottom of the experiment canvas (and selecting the Predictive Web Service option).

ヒント

トレーニング実験を予測実験に変換するときの動作の詳細については、「Azure Machine Learning Studio (クラシック) でのデプロイのためにモデルを準備する方法」を参照してください。If you want more details on what happens when you convert a training experiment to a predictive experiment, see How to prepare your model for deployment in Azure Machine Learning Studio (classic).

[Web サービスの設定] をクリックすると、次の動作が行われます。When you click Set Up Web Service, several things happen:

  • トレーニング済みのモデルが 1 つのトレーニング済みのモデル モジュールに変換され、実験キャンバスの左側にあるモジュール パレットに保存されます ( [トレーニング済みのモデル] で見つけることができます)。The trained model is converted to a single Trained Model module and stored in the module palette to the left of the experiment canvas (you can find it under Trained Models)
  • トレーニングに使用したモジュールは削除されます。具体的には次のモジュールが削除されます。Modules that were used for training are removed; specifically:
  • 保存したトレーニング済みのモデルが実験に追加されます。The saved trained model is added back into the experiment
  • Web サービスの入力モジュールと Web サービスの出力モジュールが追加されます (これらは、ユーザーのデータがどこでモデルに入力されるか、どのようなデータが返されるか、いつ Web サービスにアクセスされるかを識別します)Web service input and Web service output modules are added (these identify where the user's data will enter the model, and what data is returned, when the web service is accessed)

注意

実験は、実験キャンバスの上部に追加された 2 つのタブに分かれて保存されます。You can see that the experiment is saved in two parts under tabs that have been added at the top of the experiment canvas. 元のトレーニング実験は [トレーニング実験] タブに、新しく作成された予測実験は [予測実験] タブに配置されます。The original training experiment is under the tab Training experiment, and the newly created predictive experiment is under Predictive experiment. Web サービスとしてデプロイするのは予測実験です。The predictive experiment is the one you'll deploy as a web service.

この特定の実験では、手順を 1 つ追加で実行する必要があります。you need to take one additional step with this particular experiment. データに重み関数を提供するために、2 つの R スクリプトの実行モジュールが追加されています。you added two Execute R Script modules to provide a weighting function to the data. この追加はトレーニングとテストを行うために必要な操作であるため、これらのモジュールは最終モデルから削除できます。That was just a trick you needed for training and testing, so you can take out those modules in the final model. Machine Learning Studio (クラシック) によって、分割モジュールを削除する際に、R スクリプトの実行モジュールが 1 つ削除されています。Machine Learning Studio (classic) removed one Execute R Script module when it removed the Split module. ここで、もう 1 つのモジュールを削除し、メタデータ エディターモデルのスコア付けに直接接続できます。Now you can remove the other and connect Metadata Editor directly to Score Model.

現在、実験は以下のようになっています。Our experiment should now look like this:

Scoring the trained model

注意

UCI のドイツ語のクレジット カード データ データセットはどうして予測実験に残されたか疑問に思われるでしょう。You may be wondering why you left the UCI German Credit Card Data dataset in the predictive experiment. このサービスでは、元のデータセットではなくユーザーのデータを使用します。それにもかかわらずなぜ元のデータセットを残すのでしょうか?The service is going to score the user's data, not the original dataset, so why leave the original dataset in the model?

サービスで元のクレジット カード データを必要としないのは本当です。It's true that the service doesn't need the original credit card data. しかし、列がいくつあり、どの列が数値型であるかなどの情報を含むこのデータのスキーマが必要になります。But it does need the schema for that data, which includes information such as how many columns there are and which columns are numeric. このスキーマ情報は、ユーザーのデータを解釈するうえで必要になります。This schema information is necessary to interpret the user's data. そこで、これらのコンポーネントを接続したままにして、サービスが実行されているときにスコア付けモジュールがデータセット スキーマを利用できるようにしています。you leave these components connected so that the scoring module has the dataset schema when the service is running. データは使用されません。スキーマだけが使用されます。The data isn't used, just the schema.

注意すべき重要な点の 1 つとして、元のデータセットにラベルが含まれている場合は、Web 入力からの必要なスキーマにもラベル付きの列が必要です。One important thing to note is that if your original dataset contained the label, then the expected schema from the web input will also expect a column with the label! これを回避するには、Web 入力とトレーニング データセットを共通モジュールに接続する前に、ラベル、およびトレーニング データセットにあった (しかし、Web 入力に含まれることのない) 他のデータを削除します。A way around this is to remove the label, and any other data that was in the training dataset, but will not be in the web inputs, before connecting the web input and training dataset into a common module.

最後にもう一度実験を実行します ( [実行] をクリックします)。モデルがまだ機能することを確認するには、モデルのスコア付けモジュールの出力をクリックし、 [結果の表示] を選択します。Run the experiment one last time (click Run.) If you want to verify that the model is still working, click the output of the Score Model module and select View Results. 元のデータが、信用リスク値 ("スコア付けラベル") とスコア付け確率値 ("スコア付け確率") と共に表示されます。You can see that the original data is displayed, along with the credit risk value ("Scored Labels") and the scoring probability value ("Scored Probabilities".)

Web サービスをデプロイするDeploy the web service

従来の Web サービスまたは Azure Resource Manager に基づく新しい Web サービスのどちらかとして実験をデプロイできます。You can deploy the experiment as either a Classic web service, or as a New web service that's based on Azure Resource Manager.

従来の Web サービスとしてデプロイするDeploy as a Classic web service

実験から派生する従来の Web サービスをデプロイするには、キャンバスの下にある [Web サービスのデプロイ] をクリックし、 [Deploy Web Service (Classic) (Web サービスのデプロイ [従来])] を選択します。To deploy a Classic web service derived from our experiment, click Deploy Web Service below the canvas and select Deploy Web Service [Classic]. Machine Learning Studio (クラシック) によって実験が Web サービスとしてデプロイされ、その Web サービス用のダッシュボードに移動します。Machine Learning Studio (classic) deploys the experiment as a web service and takes you to the dashboard for that web service. このページから実験に戻って ( [View snapshot](スナップショットの表示) または [View latest](最新の表示) をクリック)、Web サービスの簡単なテストを実行できます (以下の「Web サービスをテストする」セクションを参照してください)。From this page, you can return to the experiment (View snapshot or View latest) and run a simple test of the web service (see Test the web service below). この Web サービスにアクセスできるアプリケーションを作成するための情報も表示されます (詳細はこのチュートリアルの次の手順を参照してください)。There is also information here for creating applications that can access the web service (more on that in the next step of this tutorial).

Web サービス ダッシュボード

サービスを構成するには、 [構成] タブをクリックします。このタブでは、サービス名 (既定で実験名が付けられます) を変更したり、説明を追加したりできます。You can configure the service by clicking the CONFIGURATION tab. Here you can modify the service name (it's given the experiment name by default) and give it a description. また、入力データと出力データにわかりやすいラベルを付けることもできます。You can also give more friendly labels for the input and output data.

Web サービスを構成する

新しい Web サービスとしてデプロイするDeploy as a New web service

注意

新しい Web サービスをデプロイするには、Web サービスのデプロイ先となるサブスクリプションで十分なアクセス許可を持っている必要があります。To deploy a New web service you must have sufficient permissions in the subscription to which you are deploying the web service. 詳細については、「Azure Machine Learning Web サービス ポータルを使用して Web サービスを管理する」を参照してください。For more information, see Manage a web service using the Azure Machine Learning Web Services portal.

実験から派生した新しい Web サービスをデプロイするには:To deploy a New web service derived from our experiment:

  1. キャンバスの下部の [Web サービスのデプロイ] をクリックし、 [Deploy Web Service (New) (Web サービスのデプロイ (新規))] を選択します。Click Deploy Web Service below the canvas and select Deploy Web Service [New]. Machine Learning Studio (クラシック) によって、Azure Machine Learning Web サービスの [実験のデプロイ] ページに移動します。Machine Learning Studio (classic) transfers you to the Azure Machine Learning web services Deploy Experiment page.

  2. Web サービスの名前を入力します。Enter a name for the web service.

  3. [料金プラン] で、既存の価格プランを選択するか、[新規作成] を選択し、新しいプランに名前を付け、月額プラン オプションを選択します。For Price Plan, you can select an existing pricing plan, or select "Create new" and give the new plan a name and select the monthly plan option. プラン レベルは既定では既定のリージョンのプランになり、Web サービスはそのリージョンにデプロイされます。The plan tiers default to the plans for your default region and your web service is deployed to that region.

  4. [デプロイ] をクリックします。Click Deploy.

数分後に、Web サービスの [クイック スタート] ページが開きます。After a few minutes, the Quickstart page for your web service opens.

[構成] タブをクリックしてサービスを構成できます。ここで、サービスのタイトルを変更し、説明を入力できます。You can configure the service by clicking the Configure tab. Here you can modify the service title and give it a description.

Web サービスをテストするには、 [テスト] タブをクリックします (以下の「Web サービスをテストする」を参照してください)。To test the web service, click the Test tab (see Test the web service below). Web サービスにアクセスできるアプリケーションの作成については、 [Consume](使用) タブをクリックします (詳細については、このチュートリアルの次の手順を参照してください)。For information on creating applications that can access the web service, click the Consume tab (the next step in this tutorial will go into more detail).

ヒント

Web サービスをデプロイした後で更新できます。You can update the web service after you've deployed it. たとえばモデルを変更する場合は、トレーニング実験を編集し、モデルのパラメーターを調整した後で [Web サービスのデプロイ] をクリックし、 [Deploy Web Service (Classic) (Web サービスのデプロイ (クラシック))] または [Deploy Web Service (New) (Web サービスのデプロイ (新規))] .を選択します。For example, if you want to change your model, then you can edit the training experiment, tweak the model parameters, and click Deploy Web Service, selecting Deploy Web Service [Classic] or Deploy Web Service [New]. もう一度実験をデプロイすると、Web サービスが置き換えられ、更新済みのモデルが使用されるようになります。When you deploy the experiment again, it replaces the web service, now using your updated model.

Web サービスをテストするTest the web service

Web サービスがアクセスされると、ユーザーのデータが Web サービスの入力モジュールに入力され、そこからモデルのスコア付けモジュールに渡されてスコアが付けられます。When the web service is accessed, the user's data enters through the Web service input module where it's passed to the Score Model module and scored. 設定した予測実験の方法では、モデルのデータは、元の信用リスク データセットと同じ形式であることが期待されています。The way you've set up the predictive experiment, the model expects data in the same format as the original credit risk dataset. 結果は、Web サービスから Web サービスの出力モジュール経由でユーザーに返されます。The results are returned to the user from the web service through the Web service output module.

ヒント

構成した予測実験の方法では、モデルのスコア付けモジュールから結果全体が返されます。The way you have the predictive experiment configured, the entire results from the Score Model module are returned. これには、すべての入力データに加え、信用リスク値とスコア付け確率が含まれます。This includes all the input data plus the credit risk value and the scoring probability. ただし、必要に応じて、これとは異なる結果、たとえば信用リスク値のみを返すことができます。But you can return something different if you want - for example, you could return just the credit risk value. これを行うには、列の選択モジュールを、モデルのスコア付けWeb サービスの出力の間に挿入して、Web サービスから返したくない列を排除します。To do this, insert a Select Columns module between Score Model and the Web service output to eliminate columns you don't want the web service to return.

従来の Web サービスは、Machine Learning Studio (クラシック) または Azure Machine Learning Web サービス ポータルでテストできます。You can test a Classic web service either in Machine Learning Studio (classic) or in the Azure Machine Learning Web Services portal. 新しい Web サービスは、Machine Learning Web サービス ポータルでのみテストできます。You can test a New web service only in the Machine Learning Web Services portal.

ヒント

Azure Machine Learning Web サービス ポータルでテストするとき、要求 - 応答型のサービスをテストするために使用できるサンプル データをポータルに作成させることができます。When testing in the Azure Machine Learning Web Services portal, you can have the portal create sample data that you can use to test the Request-Response service. [構成] ページで、 [Sample Data Enabled? (サンプル データを有効にしますか?)] で [はい] を選択します。On the Configure page, select "Yes" for Sample Data Enabled?. [テスト] ページの [要求 - 応答] タブを開くと、ポータルによって元の信用リスクデータセットから取得されたサンプル データが入力されます。When you open the Request-Response tab on the Test page, the portal fills in sample data taken from the original credit risk dataset.

従来の Web サービスをテストするTest a Classic web service

従来の Web サービスは、Machine Learning Studio (クラシック) または Machine Learning Web サービス ポータルでテストできます。You can test a Classic web service in Machine Learning Studio (classic) or in the Machine Learning Web Services portal.

Machine Learning Studio (クラシック) でテストするTest in Machine Learning Studio (classic)

  1. Web サービスの [ダッシュボード] ページで、 [既定のエンドポイント][テスト] ボタンをクリックします。On the DASHBOARD page for the web service, click the Test button under Default Endpoint. サービスの入力データを要求するダイアログが表示されます。A dialog pops up and asks you for the input data for the service. これらは、元の信用リスク データセットに含まれるのと同じ列です。These are the same columns that appeared in the original credit risk dataset.

  2. データのセットを入力し、 [OK] をクリックします。Enter a set of data and then click OK.

Machine Learning Web サービス ポータルでテストするTest in the Machine Learning Web Services portal

  1. Web サービスの [ダッシュボード] ページで、 [既定のエンドポイント][Test preview (プレビューのテスト)] リンクをクリックします。On the DASHBOARD page for the web service, click the Test preview link under Default Endpoint. Azure Machine Learning Web サービス ポータルで、Web サービス エンドポイント用のテスト ページが開き、サービスの入力データが求められます。The test page in the Azure Machine Learning Web Services portal for the web service endpoint opens and asks you for the input data for the service. これらは、元の信用リスク データセットに含まれるのと同じ列です。These are the same columns that appeared in the original credit risk dataset.

  2. [Test Request-Response (要求応答のテスト)] をクリックします。Click Test Request-Response.

新しい Web サービスをテストするTest a New web service

新しい Web サービスは、Machine Learning Web サービス ポータルでのみテストできます。You can test a New web service only in the Machine Learning Web Services portal.

  1. Azure Machine Learning Web サービス ポータルで、ページ上部の [テスト] をクリックします。In the Azure Machine Learning Web Services portal, click Test at the top of the page. [テスト] ページが開かれ、サービスのデータを入力することができます。The Test page opens and you can input data for the service. 表示される入力フィールドは、元の信用リスク データセットに含まれる列に対応しています。The input fields displayed correspond to the columns that appeared in the original credit risk dataset.

  2. データのセットを入力し、 [Test Request-Response (要求応答のテスト)] をクリックします。Enter a set of data and then click Test Request-Response.

テストの結果は、ページの右側の出力列に表示されます。The results of the test are displayed on the right-hand side of the page in the output column.

Web サービスを管理するManage the web service

デプロイした Web サービスは、従来の Web サービスでも新しい Web サービスでも、Microsoft Azure Machine Learning Web サービス ポータルから管理できます。Once you've deployed your web service, whether Classic or New, you can manage it from the Microsoft Azure Machine Learning Web Services portal.

Web サービスのパフォーマンスを監視するには:To monitor the performance of your web service:

  1. Microsoft Azure Machine Learning Web サービス ポータルにサインインしますSign in to the Microsoft Azure Machine Learning Web Services portal
  2. [Web サービス] をクリックします。Click Web services
  3. Web サービスをクリックしますClick your web service
  4. [ダッシュボード] をクリックします。Click the Dashboard

Web サービスにアクセスするAccess the web service

このチュートリアルで前の手順では、信用リスク予測モデルを使用する Web サービスをデプロイしました。In the previous step in this tutorial, you deployed a web service that uses your credit risk prediction model. これにより、ユーザーは、Web サービスにデータを送信し、結果を受信できます。Now users are able to send data to it and receive results.

Web サービスは、次の 2 つの方法のいずれかで、REST API を使用してデータを受信して返すことができる Azure Web サービスです。The Web service is an Azure web service that can receive and return data using REST APIs in one of two ways:

  • 要求/応答 - ユーザーが HTTP プロトコルを使用して 1 行以上のクレジット データをサービスに送信し、サービスが 1 つ以上の結果のセットを返します。Request/Response - The user sends one or more rows of credit data to the service by using an HTTP protocol, and the service responds with one or more sets of results.
  • バッチ実行 - ユーザーが Azure BLOB に 1 行以上のクレジット データを格納し、そのBLOB の場所をサービスに送信します。Batch Execution - The user stores one or more rows of credit data in an Azure blob and then sends the blob location to the service. サービスは、入力 BLOB 内のデータのすべての行にスコアを付け、結果を別の BLOB に格納し、この BLOB のURL を返します。The service scores all the rows of data in the input blob, stores the results in another blob, and returns the URL of that container.

従来の Web サービスにアクセスする最も迅速で簡単な方法は、Azure ML 要求応答サービス Web アプリまたはAzure ML バッチ実行サービス Web アプリ テンプレートを使用することです。The quickest and easiest way to access a Classic web service is through the Azure ML Request-Response Service Web App or Azure ML Batch Execution Service Web App Template.

このような Web アプリ テンプレートを使用すると、Web サービスの入力データとサービスで返される内容を認識するカスタム Web アプリを構築できます。These web app templates can build a custom web app that knows your web service's input data and what it will return. 必要な操作は、Web サービスおよびデータへのアクセスを許可することだけで、後の処理はテンプレートによって行われます。All you need to do is provide access to your web service and data, and the template does the rest.

Web アプリ テンプレートの使用方法の詳細については、「Web アプリケーション テンプレートによる Azure Machine Learning Web サービスの使用」をご覧ください。For more information on using the web app templates, see Consume an Azure Machine Learning Web service with a web app template.

リソースのクリーンアップClean up resources

この記事を使用して作成したリソースが不要になった場合は、料金の発生を避けるために削除してください。If you no longer need the resources you created using this article, delete them to avoid incurring any charges. 方法については、製品内ユーザー データのエクスポートと削除に関するページを参照してください。Learn how in the article, Export and delete in-product user data.

次の手順Next steps

このチュートリアルでは、次の手順を完了しました。In this tutorial, you completed these steps:

  • デプロイの準備をするPrepare for deployment
  • Web サービスをデプロイするDeploy the web service
  • Web サービスをテストするTest the web service
  • Web サービスを管理するManage the web service
  • Web サービスにアクセスするAccess the web service

R、C#、Python プログラミング言語で提供されるスターター コードを使用して、Web サービスにアクセスするカスタム アプリケーションを開発することもできます。You can also develop a custom application to access the web service using starter code provided for you in R, C#, and Python programming languages.