Answers:
uli和Dave Clarke都正确地观察到这是一个线性规划问题,即使在更高的维度上(这两个点集可以被超平面分开吗?),因此可以在多项式时间内解决。但是因为您的点位于平面上,所以您的问题实际上可以在时间内解决,其中是点的总数。n
最简单的解决方案可能是Seidel的随机算法。随机均匀地选择一个输入点,然后递归计算除以外的所有点的分隔线。ℓ p
如果不存在这样的线,则原始点是不可分离的。
如果在的正确一侧,则分离原始点。ℓ ℓ
如果在的错误一侧,则原始点可以通过分隔一条线,或者原始点根本不可分离。这种情况很容易检查时间[运动]。ℓ p ø (Ñ )
该算法以时间高概率运行(相对于算法的随机选择)。有关更多详细信息,请参见原始论文或任意数量的在线讲义。
您的两个数据集的属性是 线性可分离性,简单来说,就是有一条线将它们分开。许多机器学习致力于查找线性分类器,这些线性分类器执行您感兴趣的分离。
当您谈论线条时,我将假设您的点在平面上。你想要做的就是找到价值观,和,使得对所有点在集,和所有点中,。因此,不等式可以看作是集合的分类器。
有很多机器学习算法可用于确定最佳线(线性回归,逻辑回归等)。这些将基于某些错误度量找到值。然后,您可以测试是否所有点均已正确分类。也就是说,所有值是否都满足上面的方程式,并且对于是否类似。
由于您仅对是否存在这样的行感兴趣,因此需要使用现有技术(尽管这可能会更简单)。只需根据自由变量设置以下。
每个,其中。
Ĵ = 1 ,。。,| B | B = { (b 1 1,b 1 2),… ,(b | B | 1,b | B | 2)}对于每个,其中。
如果这些约束是一致的,则存在一行。