我已经为我的数据集开发了knn算法。我的数据集包含5000 *17个值。在这个数据集中,我将我的数据划分为4000个用于验证,1000个用于训练。我的问题是,在训练data.Does的时候,我的错误百分比是0.0158,这意味着我的算法对knn是好的,还是ı犯了一个错误?你觉得我的算法怎么样?
发布于 2016-11-20 02:03:08
这篇评论太长了。
在训练集上评估k-NN是非常危险的,除非你做得正确。原因是每个元素都是它自己的最近邻居。因此,该算法是作弊的。
你不需要指定"k“是什么。显然,如果k= 1,则最近的邻居是项本身(或者可能是具有相同键值的项)。
因此,如果您自己编写代码,对于每个训练实例,您应该将其从邻居集合中排除。您可以手动执行此操作。或者,您可以只评估验证集上的算法,而忽略训练集上的结果。
实际上,对于任何算法,如果可能的话,通常不应该使用训练集进行验证。
https://stackoverflow.com/questions/40696139
复制相似问题