KNeighborsClassifier .predict()函数不起作用

时间:2016-10-01 20:42:00

标签: 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.但是,我得到这个错误,基本上是试图比较测试数据和训练数据集。

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

谢谢!

2 个答案:

答案 0 :(得分:2)

您应该使用accuracy_score计算label_test,而不是label_train。您希望将测试集的实际标签label_test与模型的预测predictions进行比较,以获得测试集。

答案 1 :(得分:1)