You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python输入样本数量不一致错误[23038,7680]及KNN代码问题求助

解决KNeighborsClassifier拟合时样本数不匹配的错误

你这段代码的问题一眼就能看出来——你把测试集标签y_test传给了fit()方法,而不是训练集标签y_train!

先看你出错的代码:

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors =5, metric = 'minkowski', p = 2 )
classifier.fit(X_train, y_test)  # 这里是错误根源!

报错提示Found input variables with inconsistent numbers of samples: [23038, 7680],翻译过来就是:你传入的训练特征集X_train有23038个样本,但对应的标签集y_test只有7680个样本,两者数量完全不匹配。而fit()方法要求特征和对应标签必须是一对一的,自然就抛出错误了。

修复方法

只需要把fit()里的第二个参数换成训练集的标签y_train就搞定了:

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors =5, metric = 'minkowski', p = 2 )
classifier.fit(X_train, y_train)  # 换成训练集标签就对了!

额外提醒

  • fit()是让模型在训练数据上学习规律,必须传入训练集的特征(X_train)和训练集的标签(y_train),两者样本数必须完全一致。
  • 等模型训练完成后,你再用classifier.predict(X_test)生成测试集的预测结果,之后就可以和y_test对比来评估模型的性能啦。

内容的提问来源于stack exchange,提问作者Rahul Rai Khatri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:08:21