K最近邻分类中的特殊情况:相同点

这个问题是关于用于分类的KNN算法 – 训练样本的类标签是离散的。

假设训练集中有n个点与我们即将分类的新模式相同,即这些点到新观测的距离为零(或<epsilon)。这些相同的训练点可能具有不同的类标签。现在假设n < K,并且有一些其他训练点是最近邻集合的一部分,但与新观测的距离非零。在这种情况下,我们如何为新点分配类标签?

有几种可能的方法,例如:

  1. 考虑所有K(或更多,如果与最差的最近邻有平局)邻居,并进行多数投票
  2. 如果训练数据中有新点的“克隆”,则忽略非零距离的邻居,只在克隆上进行多数投票
  3. 与2相同,但分配训练数据中先验概率最高的类(在克隆中)

有什么想法吗?(也欢迎提供参考资料)


回答:

每个提议的方法在某些问题中会有效,但在另一些问题中则不会。一般来说,没有必要真正考虑这种边界情况,只需使用默认行为(您问题中的选项“1”)。事实上,如果任何分类算法的边界情况成为问题,这至少表明以下问题之一:

  • 问题定义不当,
  • 数据表示不当,
  • 数据预处理不当,
  • 使用的模型不当。

从理论上讲,如果某些点正好位于您的训练数据的位置,情况不会有任何变化。唯一的区别是,如果您有一个一致的训练集(在某种意义上,重复的不同标签不会出现在训练数据中)并且100%正确(每个标签都是该点的完美标记),那么添加一个根据点的标签回答的if子句是合理的。但在现实中,这种情况很少见。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注