如何处理 k-Nearest Neighbor 算法中的重复数据点?

Posted

技术标签:

【中文标题】如何处理 k-Nearest Neighbor 算法中的重复数据点?【英文标题】:How to handle duplicate data points in k-Nearest Neighbor algorithm? 【发布时间】:2016-02-04 03:27:48 【问题描述】:

我有一个大型数据集,我在其上运行 k-最近邻分类算法。考虑一个场景 k=3,我有一个新的(未分类的)点“x”,我找到了 3 个最近的邻居 n1、n2、n3。

问题是如果 n1、n2、n3 都具有完全相同的特征,即它们是重复的数据点。在我的例子中,这是一个电影数据库,其中 n1、n2、n3 是三个观看完全相同电影、相同次数的客户。

所以我必须分别考虑它们吗?或者我应该将它们视为一个数据点并寻找另外 2 个独特的数据点?

【问题讨论】:

为什么要分开处理?他们有什么特别之处吗? 因为他们实际上是三个不同的客户,可能在其他一些属性上有所不同,例如位置、收入、性别等。如果我们将分数限制在他们观看的电影历史上,则不会考虑这些。跨度> 【参考方案1】:

没有一个比另一个更正确。

在数学上,通常假设具有相同特征的点是同一点。但是它可能有多个标签和权重,所以处理起来更昂贵。

直观地说,从数据库的角度来看,k 个最近的邻居应该是 k 个对象,无论它们是否相同。事实上,不止一位“乔治·布什总统”。为什么合并它们?如果你想要更多的对象,你应该选择一个更大的 k。

选择你喜欢的,但不要假设每个人都做出相同的决定。

【讨论】:

【参考方案2】:

这取决于您使用它的目的。

如果您想查看谁观看了相同电影的次数相同,那么您可能希望将它们视为离散点,因为尽管它们是重复点,但它们仍然是最近的邻居。

如果您想查看一部电影的总观看次数,则应将重复的点视为一个点。

希望这会有所帮助, --瓦伦

【讨论】:

以上是关于如何处理 k-Nearest Neighbor 算法中的重复数据点?的主要内容,如果未能解决你的问题,请参考以下文章

kNN(K-Nearest Neighbor)最邻近规则分类(转)

最邻近规则分类(K-Nearest Neighbor)KNN算法

k-Nearest Neighbor algorithm 思想

4.2 最邻近规则分类(K-Nearest Neighbor)KNN算法应用

k-近邻算法(K-Nearest Neighbor)

机器学习——k-近邻(K-Nearest Neighbor)