python运行中提示 ValueError: Found input variables with inconsistent numbers of samples

python运行中提示 ValueError: Found input variables with inconsistent numbers of samples
我的代码如下:

img

img

img

img

运行结果如下:

img

这是我的部分数据:

img

麻烦大家花费一段时间帮忙看一下!非常感激🥹非常感谢🙏我实在是看不懂…麻烦各位啦!

想要给出具体代码怎么改🥹

你的代码从哪里找来的吧,你看下原作者用的数据,输出下维度,然后你的数据要维度和原来的一致。

你的这个错误是是由于输入参数变量与样本数不一致导致的。问题出在第160行:

img


多半是因为你的数据集的问题,比如feature集和label集的行数不相同,所以解决方法就是找到读取数据文件那里,检查下是不是把数据集的表头也读取进来了导致的

应该输入数据和标签数据的样本数量不一致导致的吧、跳转一下报错的行号看一下


测试图片(train_images)和测试标签(train_labels)的长度必须一致。

也就是说你有60000张训练数据,就必须有60000张标签,这样才可以匹配。

总的来说,二者长度(个数)必须一样即可

根据报错信息的代码行号去检查代码

以下答案由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']))

希望对你有所帮助!
如果我的回答解决了您的问题,请采纳!

该回答引用ChatGPT
这个错误是由于输入变量的样本数量不一致造成的。根据您提供的代码和截图,可能是因为代码中X_train和y_train的样本数不匹配。

建议您检查一下X_train和y_train的样本数量是否一致。如果数量不一致,请确保它们的数量相等,例如:


print(X_train.shape)
print(y_train.shape)

# 如果发现数量不一致,则可以像下面这样进行处理

X_train = X_train.iloc[:y_train.shape[0], :]


这样可以确保X_train和y_train的样本数量保持一致。请尝试一下。