【问题标题】:Having recall, F-score, precision 1 with KNN classifier具有召回率、F 分数、精度 1 和 KNN 分类器
【发布时间】: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


【解决方案1】:

尝试另一个数据集。它会起作用的。也许您的算法运行良好,可以正确分类所有数据。我已经运行了这个 kNN 程序并且遇到了这样的问题,但是对于另一个数据集,它显示的答案不是 1。

【讨论】:

    猜你喜欢
    • 2011-11-01
    • 2020-06-22
    • 2019-11-27
    • 2017-06-20
    • 2023-04-07
    • 2016-02-14
    • 2013-10-01
    • 2016-06-19
    • 2020-09-30
    相关资源
    最近更新 更多