2

そのため、現在 Azure Machine Learning の実験に取り組んでいます。モデルを作成し、Web サービスとして投稿することができました。Web サービスを作成したときに生成された API ドキュメントで提供されている C# のサンプル リクエスト/レスポンス コードを使用して、レスポンスを取得することもできました。

私の問題は、Web サービスによって提供される応答に、C# アプリケーションに必要な唯一のものである予測スコアを含む多くの情報 (長い文字列の情報) が含まれていることです。頭に浮かぶ唯一のことは、必要な情報を抽出するために文字列操作メソッドを使用することです。しかし、それよりも良い方法があると思います。HTTP リクエスト/レスポンスは初めてなので、詳しい回答と説明をお願いします。

これが私のコードです:

HttpResponseMessage response = await client.PostAsJsonAsync("", scoreRequest);

if (response.IsSuccessStatusCode)
{
    string result = await response.Content.ReadAsStringAsync();
    Console.WriteLine("Result: {0}", result);
}

else
{
    Console.WriteLine(string.Format("The request failed with status code: {0}", response.StatusCode));

    // Print the headers - they include the requert ID and the timestamp, which are useful for debugging the failure
    Console.WriteLine(response.Headers.ToString());

    string responseContent = await response.Content.ReadAsStringAsync();
    Console.WriteLine(responseContent);
}

応答メッセージは次のとおりです。

{"Results":{"output1":{"type":"table","value":{"ColumnNames":["clump_thickness","size_uniformity","shape_uniformity","marginal_adhesion","epithelial_size","bare_nucleoli","bland_chromatin","normal_nucleoli","mitoses","Scored Labels","Scored Probabilities"],"ColumnTypes":["Int32","Int32","Int32","Int32","Int32","Nullable`1","Int32","Int32","Int32","Double","Double"],"Values":[["10","10","4","8","1","8","3","10","1","1","0.979712069034576"],["10","10","4","8","1","8","3","10","1","1","0.979712069034576"]]}}}}

"Values":[[...]] 内の値のみが必要です。この場合、9 番目のインデックスまたは "1" です。

4

2 に答える 2

1

AML 実験でプロジェクト列を使用する必要があります。現在、モジュールが Web サービス出力に接続されています。project columns前にモジュールを使用して、web service output代わりに出力に送信する列だけを選択します。

于 2016-02-22T23:54:32.737 に答える
1

また、以下に示すように、score モジュールの「append columns」プロパティのチェックを外すこともできます。これにより、ラベルと確率列のみが生成されます

スコア ラベルと確率のみのスコア モジュール

于 2016-02-23T04:20:06.917 に答える