適用対象:Machine Learning Studio (クラシック)
Azure Machine Learning
重要
Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日付までに Azure Machine Learning に移行することをお勧めします。
2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。
- ML Studio (クラシック) から Azure Machine Learning への機械学習プロジェクトの移動に関する情報を参照してください。
- Azure Machine Learning の詳細
ML Studio (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。
予測実験を作成するときには通常、Web サービスの入力と出力を追加します。 実験を展開するときに、コンシューマーはこれらの入力と出力を介して Web サービスとのデータの送受信を行うことができます。 一部のアプリケーションでは、コンシューマーのデータはデータ フィードから利用できるか、または Azure BLOB ストレージなどの外部データ ソースに既に存在しています。 このような場合、Web サービスの入力と出力を使用してデータを読み書きする必要はありません。 代わりに、バッチ実行サービス (BES) を使用して、データのインポート モジュールを使用してデータ ソースからデータを読み取り、データのエクスポート モジュールを使用して、スコア付けの結果を他のデータの場所に書き込むことができます。
データのインポート モジュールとエクスポート モジュールは、HTTP を使用する Web URL、Hive クエリ、Azure SQL Database 内のデータベース、Azure Table Storage、Azure Blob Storage、提供されたデータ フィード、または SQL Server データベースなどのさまざまなデータの場所に対してデータの読み取りと書き込みを行うことができます。
このトピックでは "Sample 5: Train, Test, Evaluate for Binary Classification: Adult Dataset" サンプルを使用しており、このデータセットは censusdata という名前の Azure SQL テーブルに既に読み込まれていることを前提としています。
トレーニング実験を作成する
"Sample 5: Train, Test, Evaluate for Binary Classification: Adult Dataset" サンプルを開くと、これはサンプル Adult Census Income Binary Classification データセットを使用しています。 キャンバスの実験は以下の図のようになります。
Azure SQL テーブルからデータを読み取るには:
データセット モジュールを削除します。
コンポーネントの検索ボックスで、「インポート」と入力します。
結果の一覧から、 データのインポート モジュールを実験キャンバスに追加します。
データのインポート モジュールの出力を、Clean Missing Data モジュールの入力に接続します。
[プロパティ] ウィンドウで、[データ ソース] ドロップダウンで [Azure SQL Database] を選択します。
[ データベース サーバー名]、[ データベース名]、[ ユーザー名]、および [パスワード ] フィールドに、データベースの適切な情報を入力します。
データベースのクエリ フィールドに、次のクエリを入力します。
select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata;
実験キャンバスの下部にある [ 実行] をクリックします。
予測実験を作成する
次に、Web サービスの展開元の予測実験を設定します。
- 実験キャンバスの下部にある [ Web サービスのセットアップ ] をクリックし、[ 予測 Web サービス [推奨] を選択します。
- 予測実験から Web サービス入力 モジュールと Web サービス出力モジュール を削除します。
- コンポーネントの検索ボックスで、「エクスポート」と入力します。
- 結果の一覧から、データの エクスポート モジュールを実験キャンバスに追加します。
- スコアモデルモジュールの出力を、エクスポートデータモジュールの入力に接続します。
- [プロパティ] ウィンドウで、データ変換先のドロップダウンで Azure SQL Database を選択します。
- [ データベース サーバー名]、[ データベース名]、[ サーバー ユーザー アカウント名]、[ サーバー ユーザー アカウント のパスワード ] フィールドに、データベースの適切な情報を入力します。
- [ 保存する列のコンマ区切りリスト ] フィールドに「Scored Labels」と入力します。
- データ テーブル名フィールドに「dbo.ScoredLabels」と入力します。 テーブルが存在しない場合、テーブルは実験を実行したとき、または Web サービスが呼び出されたときに作成されます。
- [ データテーブル列のコンマ区切りリスト ] フィールドに、「ScoredLabels」と入力します。
最終的な Web サービスを呼び出すアプリケーションを作成する場合は、実行時に別の入力クエリまたは変換先テーブルを指定します。 これらの入力と出力を構成するには、Web サービス パラメーター機能を使用して、 データのインポート モジュール のデータ ソース プロパティと データのエクスポート モードのデータ変換先プロパティを設定します。 Web サービス パラメーターの詳細については、Cortana Intelligence と Machine Learning ブログの Machine Learning Studio (クラシック) Web サービス パラメーターエントリ を参照してください。
クエリのインポートおよび変換先テーブルの Web サービス パラメーターを構成するには:
- [データのインポート] モジュールのプロパティ ウィンドウで、[データベース クエリ] フィールドの右上にあるアイコンをクリックし、[Web サービス パラメーターとして設定] を選択します。
- [ データのエクスポート ] モジュールのプロパティ ウィンドウで、[ データ テーブル名 ] フィールドの右上にあるアイコンをクリックし、[ Web サービス パラメーターとして設定] を選択します。
- [ データのエクスポート モジュールのプロパティ] ウィンドウの下部にある [ Web サービス パラメーター] セクションで、[データベース クエリ] をクリックし、クエリの名前を変更します。
- [ データ テーブル名 ] をクリックし、テーブルの名前を変更 します。
完了すると、実験は以下の図のようになります。
Web サービスとして予測実験をデプロイできるようになります。
Web サービスをデプロイする
従来の、または新しい Web サービスにデプロイすることができます。
従来の Web サービスとしてデプロイする
従来の Web サービスとしてデプロイし、それを使用するアプリケーションを作成します。
実験キャンバスの下部で、 [実行]をクリックします。
実行が完了したら、[ Web サービスのデプロイ ] をクリックし、[ Web サービスのデプロイ ][クラシック] を選択します。
Web サービス ダッシュボードで、API キーを見つけます。 この API キーをコピーして、後で使用できるように保存します。
[既定のエンドポイント] テーブルで、[バッチ実行] リンクをクリックして API ヘルプ ページを開きます。
Visual Studio で、C# コンソール アプリケーション New>Project>Visual C#>Windows クラシック デスクトップ>Console アプリ (.NET Framework) を作成します。
API ヘルプ ページで、ページの下部にある [サンプル コード ] セクションを見つけます。
C# サンプル コードをコピーして Program.cs ファイルに貼り付け、BLOB ストレージへの参照をすべて削除します。
apiKey 変数の値を、前に保存した API キーで更新します。
要求宣言を見つけて、 データのインポート モジュールと データのエクスポート モジュールに渡される Web サービス パラメーターの値を更新します。 この場合は、元のクエリを使用しますが、新しいテーブル名を定義します。
var request = new BatchExecutionRequest() { GlobalParameters = new Dictionary<string, string>() { { "Query", @"select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata" }, { "Table", "dbo.ScoredTable2" }, } };
アプリケーションを実行します。
実行が完了すると、新しいテーブルがスコア付けの結果を含むデータベースに追加されます。
新しい Web サービスのデプロイ
注
新しい Web サービスをデプロイするには、Web サービスのデプロイ先となるサブスクリプションで十分なアクセス許可を持っている必要があります。 詳細については、 Machine Learning Web サービス ポータルを使用した Web サービスの管理に関するページを参照してください。
新しい Web サービスとしてデプロイし、それを使用するアプリケーションを作成します。
実験キャンバスの下部にある [ 実行] をクリックします。
実行が完了したら、[Web サービスのデプロイ] をクリックし、[新しい Web サービスのデプロイ] を選択します。
[Deploy Experiment]\(実験のデプロイ\) ページで、Web サービスの名前を入力し、価格プランを選択し、[ デプロイ] をクリックします。
[クイックスタート] ページで、[使用] をクリックします。
[ サンプル コード ] セクションで、[ バッチ] をクリックします。
Visual Studio で、C# コンソール アプリケーション New>Project>Visual C#>Windows クラシック デスクトップ>Console アプリ (.NET Framework) を作成します。
C# サンプル コードをコピーして Program.cs ファイルに貼り付けます。
apiKey 変数の値を、基本消費情報セクションにある主キーで更新します。
scoreRequest 宣言を見つけ、データのインポート モジュールとデータのエクスポート モジュールに渡される Web サービス パラメーターの値を更新します。 この場合は、元のクエリを使用しますが、新しいテーブル名を定義します。
var scoreRequest = new { Inputs = new Dictionary<string, StringTable>() { }, GlobalParameters = new Dictionary<string, string>() { { "Query", @"select [age], [workclass], [fnlwgt], [education], [education-num], [marital-status], [occupation], [relationship], [race], [sex], [capital-gain], [capital-loss], [hours-per-week], [native-country], [income] from dbo.censusdata" }, { "Table", "dbo.ScoredTable3" }, } };
アプリケーションを実行します。