【发布时间】:2020-10-07 23:47:16
【问题描述】:
我有一个数据集,根据指标显示一个人是否患有糖尿病,它看起来像这样(原始数据集):
我创建了一个简单的模型来预测最后一列(结果)。
#Libraries imported
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
#Dataset imported
data = pd.read_csv('diabetes.csv')
#Assign X and y
X = data.iloc[:,:-1].values
y = data.iloc[:,-1].values
#Data preprocessed
sc = StandardScaler()
X = sc.fit_transform(X)
#Dataset split between train and test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
# Predicting the results for the whole dataset
y_pred2 = model.predict(data)
#Add prediction column to original dataset
data['prediction'] = y_pred2
但是,我收到以下错误:ValueError: X has 9 features per sample; expecting 8.
我的问题是:
- 为什么我不能为我的整个数据集创建一个包含预测的新列?
- 如何对空白结果(需要预测的)进行预测,也就是说,我应该重新上传文件吗?假设我想预测以下内容:
要预测的行:
如果我的问题清楚,请告诉我!
【问题讨论】:
-
您尝试根据
outcome对某些行进行预测。您的模型没有为此训练(outcome不是特征,它是预测以及训练集的标签)。从倒数第二行的data中取出outcome列以获得所需的输出。 -
你的第二个问题,你的意思是你的原始训练数据集没有结果值吗?
标签: python machine-learning scikit-learn prediction