【发布时间】:2021-03-13 10:29:47
【问题描述】:
我正在运行从网站获取的 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))
您可以从here获得完整的脚本
【问题讨论】:
-
你能添加完整的代码吗?
-
@Minion 当然。我添加到问题部分
-
我认为没有问题,检查这个问题:stackoverflow.com/questions/36967126/…
-
@Minion,只是想了解一下:即使我改变了训练和测试样本,我也总是得到 1.0。这不应该是一个错误的结果吗?在您发布的链接中,他获得了 %98 的准确度,这是可以理解的结果。我刚发现 1.0 很奇怪
-
此外,您的案例中发生的分裂(偶然)恰好给出了该分数。尝试将
random_state更改为其他值,您会观察到分数的变化。
标签: python scikit-learn knn