【问题标题】:Dividing two sets of points using a straight line用直线分割两组点
【发布时间】:2014-09-14 18:25:07
【问题描述】:

假设我在二维空间中有两组点 A 和 B。我想知道是否存在一条直线,它的一侧有 A 的所有点,另一侧有 B 的所有点,如果可能的话,找到一条这样的线。我在搜索时发现了this 问题,但它更像是一个“最佳拟合线”问题。

直觉上,我觉得这是一个关于交叉产品的问题,但我无法弄清楚它是如何完成的。

【问题讨论】:

    标签: c++ geometry cross-product


    【解决方案1】:

    您可以找到每组点的凸包,然后按照此问题中的过程确定它们是否相交(如果不相交,则返回分界线):

    How do I determine if two convex polygons intersect?

    【讨论】:

      【解决方案2】:

      在机器学习中,对此的经典解决方案是支持向量机 (SVM)。它将推广到 N 维,在没有解决方案的情况下找到最佳近似值,如果有多个解决方案,它将优化分隔线的左右边距。那么可能对你来说有点矫枉过正,但已经有多种实现可用。 (例如 OpenCV)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-29
        • 2016-06-03
        • 2018-03-08
        • 2019-08-26
        • 1970-01-01
        • 2021-03-02
        • 1970-01-01
        • 2019-04-16
        相关资源
        最近更新 更多