【问题标题】:K Nearest-Neighbor Algorithm [closed]K最近邻算法[关闭]
【发布时间】:2011-06-20 21:16:31
【问题描述】:

使用 KNN 算法,假设 k=5。现在我尝试通过获取它的 5 个最近邻居来对未知对象进行分类。如果在确定了 4 个最近的邻居之后,接下来的 2 个(或更多)最近的对象距离相同怎么办?应该选择这 2 个或更多对象中的哪个对象作为第 5 个最近邻?

【问题讨论】:

  • 我投票结束这个问题,因为它与 help center 中定义的编程无关,而是关于 ML 理论和/或方法 - 请参阅 machine-learning @ 中的介绍和注意事项987654322@.

标签: machine-learning classification knn


【解决方案1】:

如果您有 k=5,则查看前 5 条记录,查看这 5 条中最常见的结果。很可能你会得到两对,这会让你陷入困境,这会很艰难,因为这样你每对都有 50/50 的机会。

这让生活充满挑战。那么如何为 k 选择一个值呢?您可以使用一些指标在事后分析结果,但没有严格规定 k 必须是什么,所以我会让自己轻松开始并坚持使用 k=3 而不是 k=5 然后向下通过查看预测的实际准确性,该道路研究了一些可以帮助您优化 k 值的策略。

【讨论】:

    【解决方案2】:

    如果你有另一个距离函数,你可以用它来打破平局。即使是一个糟糕的人也可以完成这项工作,如果你有一些启发式方法会更好。例如,如果您知道计算主要距离的特征之一更重要,则仅使用该特征来解决平局问题。

    如果不是这样,请随机选择。在同一个测试集上多次运行你的程序,检查随机选择是否重要。

    【讨论】:

      【解决方案3】:

      另一个有趣的选择是像这样使用最近的邻居:

      • 您计算每个类别的 5 个最近邻居到样本的距离:您将有每个类别的 5 个距离。

      • 然后你得到每个类的平均距离。

      • 较低的平均距离将是您分配给样本的类别。

      这种方式对重叠类的数据集有效。

      【讨论】:

        【解决方案4】:

        这 2 个或更多对象中的哪一个应该被选为第 5 个最近邻?

        这真的取决于你想如何实现它。

        大多数算法会做以下三件事之一:

        1. 包括所有距离相等的点,因此在此估计中,它们将使用 6 个点,而不是 5 个。
        2. 使用两个相等距离的“第一个”找到的点。
        3. 从找到的 2 个点中选择一个随机点(通常具有一致的种子,因此结果可重现)。

        话虽如此,大多数基于径向搜索的算法都有一个固有的平稳性假设,在这种情况下,您选择上面的哪个选项实际上并不重要。一般来说,理论上,它们中的任何一个都应该提供合理的默认值(特别是因为它们是近似值中最远的点,并且应该具有最低的有效权重)。

        【讨论】:

        • 啊好的,非常感谢 :) (此信息应添加到关于 KNN 的维基百科文章中...)
        猜你喜欢
        • 2012-07-19
        • 2018-05-09
        • 2010-10-16
        • 2014-02-23
        • 2012-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-12
        相关资源
        最近更新 更多