【发布时间】:2014-09-14 18:25:07
【问题描述】:
假设我在二维空间中有两组点 A 和 B。我想知道是否存在一条直线,它的一侧有 A 的所有点,另一侧有 B 的所有点,如果可能的话,找到一条这样的线。我在搜索时发现了this 问题,但它更像是一个“最佳拟合线”问题。
直觉上,我觉得这是一个关于交叉产品的问题,但我无法弄清楚它是如何完成的。
【问题讨论】:
标签: c++ geometry cross-product
假设我在二维空间中有两组点 A 和 B。我想知道是否存在一条直线,它的一侧有 A 的所有点,另一侧有 B 的所有点,如果可能的话,找到一条这样的线。我在搜索时发现了this 问题,但它更像是一个“最佳拟合线”问题。
直觉上,我觉得这是一个关于交叉产品的问题,但我无法弄清楚它是如何完成的。
【问题讨论】:
标签: c++ geometry cross-product
您可以找到每组点的凸包,然后按照此问题中的过程确定它们是否相交(如果不相交,则返回分界线):
【讨论】:
在机器学习中,对此的经典解决方案是支持向量机 (SVM)。它将推广到 N 维,在没有解决方案的情况下找到最佳近似值,如果有多个解决方案,它将优化分隔线的左右边距。那么可能对你来说有点矫枉过正,但已经有多种实现可用。 (例如 OpenCV)
【讨论】: