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算法错误百分比的主要内容,如果未能解决你的问题,请参考以下文章