为了账号安全,请及时绑定邮箱和手机立即绑定

KNN - 在 python 中预测单个案例

KNN - 在 python 中预测单个案例

慕田峪4524236 2022-08-02 10:40:53
我正在使用Kaggle - 心血管疾病数据集中的数据集。模型已经过训练,我想做的是标记以动态方式插入的单个输入(一行13个值)。数据集的形状为 13 个特征 + 1 个目标,66k 行#prepare dataset for train and testdfCardio = load_csv("cleanCardio.csv")y = dfCardio['cardio']x = dfCardio.drop('cardio',axis = 1, inplace=False)model = knn = KNeighborsClassifier()x_train,x_test, y_train, y_test = train_test_split(x,y,test_size=0.2,random_state=42)model.fit(x_train, y_train)# make predictions for test datay_pred = model.predict(x_test)predictions = [round(value) for value in y_pred]# evaluate predictionsaccuracy = accuracy_score(y_test, predictions)print("Accuracy: %.2f%%" % (accuracy * 100.0))ML是训练的,我想做的是预测这一行的标签:['69','1','151','22','37','0','65','140','90','2','1','0','0','1']为目标返回 0 或 1。所以我写了这个代码:import numpy as npimport pandas as pdsingle =  np.array(['69','1','151','22','37','0','65','140','90','2','1','0','0','1'])singledf = pd.DataFrame(single)final=singledf.transpose()prediction = model.predict(final)print(prediction)但它给出了错误:查询数据维度必须与训练数据维度匹配如何修复单行的标签?为什么我无法预测单个病例?
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

数据集中的每个实例都有 13 个要素和 1 个标注。

x = dfCardio.drop('cardio',axis = 1, inplace=False)

代码中的这一行从数据中删除了我假设的标签列,只留下 (13) 个功能列。

您尝试预测的特征向量的长度为 14 个元素。您只能预测长度为 13 个元素的特征向量,因为这是模型训练的基础。


查看完整回答
反对 回复 2022-08-02
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

我不同意其他人的观点,这不是包括目标的问题。
我也有这个问题。我绕过它的唯一方法是输入.x

所以:

x2=x.iloc[0:3]

然后为第一行指定一个新值:

x2.iloc[0]=single 

ypred=model.predict(x2)

看看.ypred[0]

或者尝试使用包含 2 个值的数据帧


查看完整回答
反对 回复 2022-08-02
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

如果您正在寻找一个真实快速的解决方案,您可以使用它


import numpy as np

import pandas as pd

single =  np.array([['69','1','151','22','37','0','65','140','90','2','1','0','0']])

prediction = model.predict(single)

print(prediction)


查看完整回答
反对 回复 2022-08-02
  • 3 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信