Исключение при прогнозировании sklearn: аргумент float () должен быть строкой или числом, а не 'dict' (Код ошибки: 2) - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь следовать этому руководству (https://cloud.google.com/ml-engine/docs/deploying-models).

) Здесь я пытаюсь предсказать вывод простой модели (Титаник) для input_json в моем локальном каталоге.

Я застрял в части создания локального предсказания, где мне нужно дать input.json.

Для предоставленного мной ввода json я постоянно получаю сообщение об ошибке в качестве исключения во время предсказания sklearn: float ()аргумент должен быть строкой или числом, а не 'dict' (код ошибки: 2)

Мой файл input.json содержит:

{"Pclass" : 3, "SibSp" : 1, "Parch" : 0, "Sex_female" : 0, "Sex_male" : 1}

Кроме того, яудалили все функции с плавающей точкой из ввода обученной модели, и вышеупомянутые функции - единственные функции, используемые для того же самого.

1 Ответ

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

Sklearn не работает с json. Вам нужно преобразовать ваши данные во что-то вроде массива или в pandas-фрейм данных. В этом случае pandas dataframe, вероятно, более удобен. Это выглядело бы так:

import pandas as pd

# the following line is just to simulate
# pass just your dicts to from_records below
data= [
    {"Pclass" : 3, "SibSp" : 1, "Parch" : 0, "Sex_female" : 0, "Sex_male" : 1},
    {"Pclass" : 3, "SibSp" : 2, "Parch" : 0, "Sex_female" : 1, "Sex_male" : 0},
]

df= pd.DataFrame.from_records(data)

Затем передайте этот фрейм данных df для обучения вашей модели. Не забудьте также передать свои этикетки. Если они, например, являются частью вышеупомянутых документов json (например, ключ = выжил), вы можете обучить вашу модель следующим образом:

your_model.fit(df[['PClass', 'SibSp', 'Parch', 'Sex_female', 'Sex_male']], df['survived'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...