这个问题是关于用于分类的KNN算法 – 训练样本的类标签是离散的。
假设训练集中有n
个点与我们即将分类的新模式相同,即这些点到新观测的距离为零(或<epsilon
)。这些相同的训练点可能具有不同的类标签。现在假设n < K
,并且有一些其他训练点是最近邻集合的一部分,但与新观测的距离非零。在这种情况下,我们如何为新点分配类标签?
有几种可能的方法,例如:
- 考虑所有K(或更多,如果与最差的最近邻有平局)邻居,并进行多数投票
- 如果训练数据中有新点的“克隆”,则忽略非零距离的邻居,只在克隆上进行多数投票
- 与2相同,但分配训练数据中先验概率最高的类(在克隆中)
- …
有什么想法吗?(也欢迎提供参考资料)
回答:
每个提议的方法在某些问题中会有效,但在另一些问题中则不会。一般来说,没有必要真正考虑这种边界情况,只需使用默认行为(您问题中的选项“1”)。事实上,如果任何分类算法的边界情况成为问题,这至少表明以下问题之一:
- 问题定义不当,
- 数据表示不当,
- 数据预处理不当,
- 使用的模型不当。
从理论上讲,如果某些点正好位于您的训练数据的位置,情况不会有任何变化。唯一的区别是,如果您有一个一致的训练集(在某种意义上,重复的不同标签不会出现在训练数据中)并且100%正确(每个标签都是该点的完美标记),那么添加一个根据点的标签回答的if子句是合理的。但在现实中,这种情况很少见。