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
相关产品推荐
相关产品推荐

