Как преобразовать вывод метода прогнозирования Scikit Learn OneVsRestClassifier в плотный массив для облака Google ML? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть модель, которую я обучил с использованием sklearn Pipeline и OneVsRestClassifier, который я пытаюсь развернуть в Cloud ML Engine, однако при использовании команды:

gcloud ml-engine predict --model $MODEL_NAME --version $VERSION_NAME --json-instances $INPUT_FILE

Я получаю ошибку:

{ "error": "Prediction failed: Bad output type returned.The predict function should return either a numpy ndarray or a list." }

Это наводит меня на мысль, что это тот факт, что вывод метода предиктирования OneVsRestClassifier является разреженной матрицей, когда он должен быть массивом с нулевыми значениями. Как я могу преобразовать его вывод в плотный массив в моем конвейере?

Архитектура конвейера выглядит следующим образом:

Pipeline([('tfidf', tfidf), ('clf', OneVsRestClassifier(XGBClassifier())])

Спасибо!

Я пытался использовать методы, приведенные здесь ( вероятность предсказания scikit-обучения Google Cloud ML-engine 'pregnate_proba ()' ), чтобы перезаписать метод предиката OneVsRestClassifier его методомgnakt_proba, однако это приводит к следующая ошибка при попытке выбора нового конвейера:

PicklingError: Can't pickle <function OneVsRestClassifier.predict_proba at 0x10a8f9d08>: it's not the same object as sklearn.multiclass.OneVsRestClassifier.predict_proba

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...