KNN – 在Python中预测单个案例

我使用了来自Kaggle的关于心血管疾病的数据集 数据集。模型已经训练完成,我希望动态地为一个输入(一行13个值)打上标签。

数据集的形状为13个特征加上1个目标,共66,000行

#准备训练和测试数据集dfCardio = 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)# 对测试数据进行预测y_pred = model.predict(x_test)predictions = [round(value) for value in y_pred]# 评估预测结果accuracy = accuracy_score(y_test, predictions)print("Accuracy: %.2f%%" % (accuracy * 100.0))

机器学习模型已经训练完成,我希望预测这一单行数据的标签:

['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)

但它返回错误:查询数据维度必须与训练数据维度匹配

如何修正对单行的标记?我为何无法预测单个案例?


回答:

您的数据集中每个实例有13个特征和1个标签。

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

代码中的这一行移除了我认为是标签列的数据,仅保留了(13个)特征列。

您尝试预测的特征向量长度为14个元素。您只能在13个元素长的特征向量上进行预测,因为这是模型训练时使用的长度。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注