swagger.json пример json для модели прогноза, похоже, не возвращает прогнозы - PullRequest
1 голос
/ 14 октября 2019

При попытке сделать прогнозы для моделей прогнозирования с использованием службы Azure ML файл 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, в результате чего 'ожидаемая двух ось получила один' и передавать 0 как y_query. Будем весьма благодарны за любые рекомендации о том, как делать прогнозы с использованием этого подхода.

Документация для веб-сервисов находится здесь: https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-consume-web-service

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Попробуйте использовать nan в качестве значения для y_query. и убедитесь, что дата является следующей единицей времени после той, которая использовалась в тренировочном наборе.

0 голосов
/ 12 ноября 2019

Следующий способ отправки 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 или входное имяcast_destination содержит даты, предшествующие самой последней дате в данных обучения. Удалите строки прогноза с датами и временем в диапазоне дат обучения или скорректируйте дату прогнозирования.

...