python - KNeighborsClassifier .predict() 函数不起作用

标签 python pandas machine-learning

我正在使用 Python 中 scikit-learn 库中的 KNeighborsClassifier 算法。我遵循基本说明,例如将我的数据和标签拆分为训练和测试数据,然后根据训练数据训练我的模型。现在我试图预测测试数据的准确性,但出现错误。这是我的代码:

from sklearn.neighbors import KNeighborsClassifier 
from sklearn.cross_validation import train_test_split
from sklearn.metrics import accuracy_score

 data_train, data_test, label_train, label_test = train_test_split(df, labels, 
                                                              test_size=0.2,
                                                              random_state=7)
mod = KNeighborsClassifier(n_neighbors=4)
mod.fit(data_train, label_train)
predictions = mod.predict(data_test)

print accuracy_score(label_train, predictions)

我得到的错误:

ValueError: Found arrays with inconsistent numbers of samples: [140 558]

140是训练数据部分,558是基于test_size=0.2的测试数据(我的数据集是698个样本)。我验证了标签和数据集的大小相同 698。但是,我收到此错误,这基本上是在尝试比较测试数据和训练数据集。

有谁知道这里出了什么问题吗?我应该使用什么来训练我的模型以及我应该使用什么来预测分数?

谢谢!

最佳答案

您应该使用 label_test 而不是 label_train 来计算 accuracy_score。您想要将测试集 label_test 的实际标签与测试集的模型预测 predictions 进行比较。

关于python - KNeighborsClassifier .predict() 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39811270/

相关文章:

python - 同时计算 2 列的扩展平均值

machine-learning - 已经提出了哪些算法来学习深度神经网络的架构?

python - scipy.optimize.curve_fit 产生无意义的曲线拟合

Python ssl 登录卡在 Debian 上

python - 为什么我不能使用正则表达式挖出某些字符串的某些 ID?

python - 动态创建类的属性

Python 遍历文件系统。奇怪的问题

python - 在 Pandas 中将奇数转换为 bool 值

python - pandas 通过采样读取 csv

python-3.x - Keras.fit_generator 需要更多时间用于纪元