Python 使用KNN分类器具有召回率、F分数、精度1

Python 使用KNN分类器具有召回率、F分数、精度1,python,scikit-learn,knn,Python,Scikit Learn,Knn,我正在运行一个python脚本,它是我从一个网站上获取的。这是一个使用Iris数据集并对该数据集执行KNN分类的简单代码。但是当我运行这个脚本时,我一直得到所有的测量分数为1.0,我认为这是一个错误的结果。我在哪里犯的错误 脚本的分类部分: knn = KNeighborsClassifier(n_neighbors=5) knn.fit(X_train, y_train) y_pred = knn.predict(X_test) print(confusion_matrix(y_te

我正在运行一个python脚本,它是我从一个网站上获取的。这是一个使用Iris数据集并对该数据集执行KNN分类的简单代码。但是当我运行这个脚本时,我一直得到所有的测量分数为1.0,我认为这是一个错误的结果。我在哪里犯的错误

脚本的分类部分:

knn = KNeighborsClassifier(n_neighbors=5)

knn.fit(X_train, y_train)


y_pred = knn.predict(X_test)  
print(confusion_matrix(y_test, y_pred))  
print(classification_report(y_test, y_pred))

您可以从

获取完整脚本,然后尝试其他数据集。它会起作用的。也许你的算法能够正确地对所有数据进行分类。我运行了这个kNN程序,遇到了这样一个问题,但对于另一个数据集,它显示的答案不是1。

你能添加完整的代码吗?@Minion当然。我补充了一个问题,我认为没有问题,检查这个问题:@Minion,只是想了解:即使我改变了火车和测试样本,我总是得到1.0的一切。这不是一个错误的结果吗?在你发布的链接中,他获得了98%的准确率,这是可以理解的结果。我刚刚发现1.0非常奇怪,而且,在你的情况下发生的分裂(碰巧)正好给出了这个分数。尝试将
random_state
更改为其他值,您将观察到分数的变化。