为什么KNN中k = 1能够提供最佳准确度?

时间:2016-04-15 02:08:28

标签: text classification weka knn

我正在使用Weka IBk进行文本分类。每个文件基本上都是一个短句。训练数据集包含15,000个文档。在测试时,我可以看到k = 1给出了最佳精度?怎么解释这个?

3 个答案:

答案 0 :(得分:1)

如果您使用k = 1训练的相同数据集查询学习者,则输出值应该是完美的,除非您拥有具有不同结果值的相同参数的数据。对适用于KNN学习者的过度拟合做一些阅读。

如果您使用与训练过的数据集相同的数据集进行查询,则会为每个具有某些给定参数值的学习者提供查询。因为学习者从您训练的数据集中存在该点,学习者将匹配该训练点最接近参数值,因此输出该训练点存在的任何Y值,在这种情况下与您的点相同查询。

答案 1 :(得分:0)

可能性如下:

  1. 数据测试的数据培训是相同的数据
  2. 数据测试与训练数据具有高度相似性
  3. 班级之间的界限非常明确
  4. K的最佳值取决于数据。一般来说,k的值可能会降低噪声对分类的影响,但会使每个分类之间的界限变得更加模糊。

答案 2 :(得分:-1)

准确性通常是针对训练数据集中未包含的点(即看不见的数据点)计算的,因为如果您计算看不见的值的准确性(不在训练数据集中的值),则可以声称模型的精度是针对看不见的值计算出的精度。

如果您计算训练数据集KNN的精度,其中k = 1,则该模型已经看到了100%的值,并且为k = 1形成了一个粗略的决策边界。当您为看不见的数据计算准确性时,它的表现确实很差,因为训练误差会非常低,但实际误差会非常高。因此,如果选择最佳k会更好。要选择最佳k,您应该在看不见的数据(即测试数据)的误差和k值之间绘制一个图,现在应该选择误差最低的值。

要立即回答您的问题,

1)您可能已将整个数据集作为训练数据集,并选择了数据集的一部分作为测试数据集。
                              (要么) 2)您可能已经获得了训练数据集的准确性。

如果不是这两种情况,请检查较高k的准确度值,对于看不见的数据或测试数据,k> 1的准确度甚至更高。