JSONDecodeError:期望值:Iris数据的第1行列1(字符0)

2024-10-02 08:14:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Iris数据集创建一个机器学习模型(通过观看教程、完成新手到机器学习和数据科学)来创建机器学习模型,到目前为止,我已经使用随机森林分类器对其进行分类,但现在我想对照自定义输入检查我的预测,我的主要分类代码如下:

X= iris.data
y= iris.target
X_train, X_test, y_train, y_test = train_test_split(X,y)
rfc = RandomForestClassifier(n_estimators=100, n_jobs=2)
rfc.fit(X_train, y_train)
print ("Accuracy = %0.2f" % accuracy_score(y_test, rfc.predict(X_test)))
print (classification_report(y_test, rfc.predict(X_test)))
pickle.dump(rfc, open("iris_rfc1.pkl", "wb"))
my_random_forest = pickle.load(open("iris_rfc1.pkl","rb"))
url= "http://localhost:9000/api"
data = json.dumps({'sl':5.8,'sw':4,'pl':2,'pw':9})
r = requests.post(url, data)

print (r.json())

我用来连接的烧瓶文件:

^{pr2}$

但是当我运行这个程序时,我得到错误“jsondecodererror:Expecting value:line 1 column 1(char 0)”

其他细节:我使用Jupyter笔记本进行预测,atom用于创建flask文件,pyhtonversion3


Tags: 数据模型test机器irisdatarfc分类
1条回答
网友
1楼 · 发布于 2024-10-02 08:14:56

函数make_predict()传递的结果就是发生错误的地方。在

JSON(Java脚本对象表示法)只能表示/序列化有限的group数据类型,Numpy对象不属于该组。在

看看错误消息,数字0必须是由随机林分类器生成的预测,而rfc只在Numpy数组上操作。它们的输出也是相同的数据类型。json()方法不知道如何序列化numpy对象。在

>>>a = rfc.predict(np.array([1,2,3,4]).reshape(1,-1))
>>>a, type(a)
(array([1]), numpy.ndarray)

>>>b = a[0]
>>>b, type(b)
(1, numpy.int32)

>>>c = np.asscalar(b)
>>>c, type(c)
(1, int)

y_hat是一个numpy数组,y_hat(输出变量)的第一个元素的类型为np.int32. 使用np.asscalar公司()方法,json()将能够识别它。在

相关问题 更多 >

    热门问题