sklearn预测期间的异常:float()参数必须是字符串或数字,而不是'dict'(错误代码:2)

我正在尝试遵循本教程(https://cloud.google.com/ml-engine/docs/deploying-models)。

在这里,我正在尝试预测本地目录中input_json的简单模型(泰坦尼克号)的输出。

我被困在进行局部预测的过程中,我需要提供一个input.json。

对于我提供的输入json,在sklearn预测过程中,我反复收到作为Exception的错误:float()参数必须为字符串或 一个数字,而不是“ dict”(错误代码:2)

我的input.json文件包含:

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

此外,我从训练后的模型的输入中删除了所有浮动功能,并且上面的功能是唯一用于同一功能的功能。

hscooler 回答:sklearn预测期间的异常:float()参数必须是字符串或数字,而不是'dict'(错误代码:2)

Sklearn与json不兼容。您需要将数据转换为numpy数组或pandas数据框。在这种情况下,熊猫数据框可能更方便。看起来像这样:

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,"Sex_female" : 1,"Sex_male" : 0},]

df= pd.DataFrame.from_records(data)

然后传递此数据框df来训练模型。别忘了通过您的标签。例如,如果它们是上述json文档的一部分(例如key = survived),则可以像这样训练模型:

your_model.fit(df[['PClass','SibSp','Parch','Sex_female','Sex_male']],df['survived'])
本文链接:https://www.f2er.com/3125320.html

大家都在问