python - sklearn 预测期间的异常:float() 参数必须是字符串或数字,而不是“dict”(错误代码:2)
问题描述
我正在尝试遵循本教程(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}
此外,我已经从训练模型的输入中删除了所有浮点特征,上述特征是唯一用于相同的特征。
解决方案
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, "Parch" : 0, "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'])
推荐阅读
- file - 使用命令更改图像的文件路径
- c# - 如何从包含未知对象的 json 文件中返回值?
- android - 无法更改 kotlin 中给定类的全局值
- jpa - 如何使用spring AOP根据授权用户的范围返回对象
- python - 如何在 PyQt 中有一个可滚动的上下文菜单
- javascript - 如何获得 Reactjs 中嵌套数组的总和?
- visual-studio - ASP.NET Core 5.0 中的区域路由
- python - 如何创建与范围相关的其他列的模拟列
- javascript - 如何在不传递任何参数的情况下获取 JavaScript 函数中 HTML 元素的 ID?
- python - 使用 Tkinter 的电子邮件切片器项目但出现错误?谁能帮助我