当尝试使用Azure ML Service为预测模型进行预测时,swagger.json包含以下输入架构:
"example": {"data": [{"date": "2019-08-30T00:00:00.000Z", "y_query": 1.0}]}
但是,当我将其作为输入生成预测时,收到以下错误:
data= {"data": [{"date": "2019-08-30T00:00:00.000Z", "y_query": 1 }]}
# Convert to JSON string
input_data = json.dumps(data)
# Set the content type
headers = {'Content-Type': 'application/json'}
# If authentication is enabled, set the authorization header
#headers['Authorization'] = f'Bearer {key}'
# Make the request and display the response
resp = requests.post(scoring_uri, input_data, headers=headers)
print(resp.text)
"{\"error\": \"DataException:\\n\\tMessage: y values are present for each date. Nothing to forecast.\\n\\tInnerException None\\n\\tErrorResponse \\n{\\n \\\"error\\\": {\\n \\\"code\\\": \\\"UserError\\\",\\n \\\"inner_error\\\": {\\n \\\"code\\\": \\\"InvalidData\\\"\\n },\\n \\\"message\\\": \\\"y values are present for each date. Nothing to forecast.\\\"\\n }\\n}\"}"
我尝试不传递y值,这会导致“预期的两个轴得到1”并传递0作为y_query。任何有关如何使用此方法进行预测的指导将不胜感激。
有关Web服务的文档位于:https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-consume-web-service
答案 0 :(得分:1)
尝试使用nan作为y_query的值。并确保日期是训练集中使用的时间单位之后的下一个时间单位。
答案 1 :(得分:0)
以下提交np.nan的方法对y_query有用。
input_sample = pd.DataFrame(data=[{'Feature1_text': 'text1', 'Feature2_int': 0, 'Feature3_double': 2.0, 'DateHour': '2019-11-12T04:00:00.000Z', 'y_query': np.nan}])
run(input_sample)
如前所述,请确保输入的日期时间是训练中最后一个日期之后的时间,否则会出现以下错误。
输入预测数据X_pred或输入Forecast_destination包含 日期早于训练数据中的最新日期。请删除 日期时间在训练日期范围内的预测行或进行调整 预测目的地的日期。