如何修改 Azure 部署服务的 input/output 架构?

How to modify the input/output schema for an Azure deployment service?

我开始在 Microsoft Azure 机器学习工作室服务上开发机器学习模型。与此服务相关的教程和信息相当清楚,但我正在寻找一些我没有找到的有关服务部署的信息。

我想了解为什么输入模式需要定义要预测的变量以及为什么输出 returns 条目中给出的所有变量字段。在这个response/request交换中传递的一部分信息是无用的。我想知道是否可以手动修改此架构。

我在 Web 服务面板的配置选项卡中进行了搜索,但没有找到任何信息来修改传递给模型的架构。

下面的代码是模型需要的输入模式,预测值是 WallArea。传递这个变量并不是很有用,因为它是我们试图预测的变量。 (除非我们想比较实际值和预测值以进行测试)。

{
  "Inputs": {
    "input1": {
      "ColumnNames": [
        "WallArea",
        "RoofArea",
        "OverallHeight",
        "GlazingArea",
        "HeatingLoad"
      ],
      "Values": [
        [
          "0",
          "0",
          "0",
          "0",
          "0"
        ]
      ]
    }
  },
  "GlobalParameters": {}
}

带有预测值的模型返回的json发送了所有数据。这是我们真正需要的更多信息("Scored Label Mean" 和 "Scored Label Standard Deviation")

{
  "Results": {
    "output1": {
      "type": "DataTable",
      "value": {
        "ColumnNames": [
          "WallArea",
          "RoofArea",
          "OverallHeight",
          "GlazingArea",
          "HeatingLoad",
          "Scored Label Mean",
          "Scored Label Standard Deviation"
        ],
        "ColumnTypes": [
          "Numeric",
          "Numeric",
          "Numeric",
          "Numeric",
          "Numeric",
          "Numeric",
          "Numeric"
        ],
        "Values": [
          [
            "0",
            "0",
            "0",
            "0",
            "0",
            "0",
            "0"
          ]
        ]
      }
    }
  }
}

我的问题是如何 reduce/synthesize input/output 模式(如果可能)以及为什么要预测的变量必须与输入模式一起发送?

我找到了解决方案。

遇到同样问题的朋友,其实很简单。您需要在 Predictive experiment 架构中的 Dataset 框中添加两个 Select 列。

2020 年更新: 在对服务进行了一些更新之后,建议的解决方案部分失效。事实上,如果您决定不将结果包含在第一个 Select 列框中,您将无法在第二个 Select 列框中检索它 导致错误。要解决这个问题,您必须删除第一个 Select 列框并获取所有功能。对于第二个 Select 列框 没有任何变化,您 select 您想要的预测响应功能。