在matlab中应用knn算法对手写体数字进行分类。数字最初是矢量格式的8*8,然后拉伸成矢量1*64所以每次我比较第一个数字和所有剩余的数据集(这是相当大的),然后第二个数字和其余的数据集等等。现在我的问题是,一个邻居不总是最好的选择吗既然我使用欧几里德距离,(我选择一个更近的)为什么我也应该选择2或3个邻居,因为我得到了最接近的数字?
谢谢
最佳答案
你必须考虑到噪音假设你的一些分类例子被错误地分类了,或者其中一个很奇怪地与其他例子非常接近-这是不同的,但实际上只是一个“小故障”。在这些情况下,根据这个偏离轨道的例子进行分类可能会导致错误。
从个人经验来看,通常k=3/5/7时会获得最佳结果,但这取决于实例。
如果您想获得最佳性能,您应该使用cross validationtop为您的特定实例选择最佳的k
。
此外,通常只使用奇数作为KNN的k
,以避免“绘制”
关于algorithm - 邻居数KNN算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10174755/