python运行中提示 ValueError: Found input variables with inconsistent numbers of samples
我的代码如下:
运行结果如下:
这是我的部分数据:
麻烦大家花费一段时间帮忙看一下!非常感激🥹非常感谢🙏我实在是看不懂…麻烦各位啦!
想要给出具体代码怎么改🥹
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
这个错误提示说明在你的训练数据和测试数据中,样本数目(行数)不一致,不能进行训练和预测。解决方法是检查一下你的数据集,确保训练数据和测试数据的样本数目一致。
在你的代码中,我看到了一些不一致的地方。你先将数据划分为训练集和测试集,然后进行标准化操作。但是,你在测试集上进行了标准化操作,并且使用测试集上的均值和标准差对训练集进行了标准化操作。这是不对的。正确的做法是,先对训练集进行标准化,然后使用训练集上的均值和标准差对测试集进行标准化操作。这样才能保证数据分布的一致性。
下面是一份修改后的代码,其中包括了上述的更正:
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
# 读入数据
data = pd.read_csv('data.csv')
# 划分特征和标签
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 标准化训练集上的特征
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
# 使用训练集上的均值和方差对测试集进行标准化
X_test = sc_X.transform(X_test)
# 训练模型
classifier = KNeighborsClassifier(n_neighbors=5, metric='minkowski', p=2)
classifier.fit(X_train, y_train)
# 预测结果
y_pred = classifier.predict(X_test)
# 输出结果
print(pd.DataFrame(np.column_stack((y_test, y_pred)),columns=['Actual','Predicted']))
希望对你有所帮助!
如果我的回答解决了您的问题,请采纳!