knn算法错误百分比

Posted

技术标签:

【中文标题】knn算法错误百分比【英文标题】:knn algorithm error percentage 【发布时间】:2017-04-03 10:18:37 【问题描述】:

我为我的数据集开发了 knn 算法。我的数据集包含 5000 *17 个值。在这个数据集中,我将我的数据划分为 4000 用于验证和 1000 用于训练。 我的问题是最后我的训练数据的错误百分比是 0.0158。这是否意味着我的算法对 knn 有好处,或者我犯了错误吗?你觉得我的算法怎么样?

【问题讨论】:

我假设你的错误百分比是 1.58%?如果是 0.0158%,那将是一个了不起的结果。我会说 1.5% 是一个非常好的结果,但它在一定程度上取决于数据和应用程序。 【参考方案1】:

评论太长了。

在训练集上评估 k-NN 是非常危险的,除非你做得正确。原因是每个元素都是它自己的最近邻。因此,该算法是作弊的。

您没有指定“k”是什么。显然,如果 k = 1,那么最近的邻居就是项目本身(或者可能是具有相同键值的项目)。

因此,如果您自己编写代码,对于每个训练实例,您应该将其从邻居集中排除。您可以手动执行此操作。或者,您可以只在验证集上评估算法,而忽略训练集上的结果。

实际上,对于任何算法,如果可能的话,您通常不应该使用训练集进行验证。

【讨论】:

实际上,我并没有通过每次更改它的值来包含点本身。我只是找到与当前点距离最小的 k 点。我根据这些 k 点的值给出值。我只是在第一次运行时得到较小的错误,这让我对我的算法产生怀疑。 @Muaa2404 。 . .考虑一下。从训练集中的一个点到它自己的距离是 0,所以它总是包含在最近的邻居中(或者如果有关系,至少是一个候选者)。那是作弊。

以上是关于knn算法错误百分比的主要内容,如果未能解决你的问题,请参考以下文章

KNN算法及KNN的优化算法-加权KNN

knn算法如何选择一个最佳k值

简单数字识别(knn算法)

深入浅出KNN算法 介绍篇

KNN算法

2. KNN和KdTree算法实现