線は2セットのポイントを分離します


19

2セットのポイントを線で区切ることができるかどうかを識別する方法がある場合

我々は2つの点の集合有するおよび分離する線が存在する場合と、その結果、すべての点のみ線の一方の側に、そしてすべての点とのみ他方の側に。B A B A A B BABABAABB

私が思いついた最も素朴なアルゴリズムは、と凸多角形を構築し、それらの交差をテストすることです。凸多角形の構築に関しては、時間の複雑さは必要があると思われ。実際、時間の複雑さの改善は期待していませんが、改善できるかどうかはわかりません。しかし、少なくとも、そのような線があるかどうかを判断するためのより美しい方法があるはずです。B O n log h ABO(nlogh)

回答:


19

uliとDave Clarkeはどちらも、これが高次元(これらの2つの点集合を超平面で分離できるか)でも線形計画問題であることを正しく観察しているため、多項式時間で解くことができます。しかし、ポイントは平面にあるため、問題は実際には時間で解決できます。ここで、はポイントの総数です。nO(n)n

最も簡単な解決策は、おそらくSeidelのランダム化アルゴリズムです。入力点を選択しランダムに均一に、かつ再帰的に分離ライン計算すべてのポイントのために除いℓのPp p

  • そのような線が存在しない場合、元の点は分離できません。

  • 場合正しい側にある、次に元の点を分離します。ℓのp

  • 場合間違った側にある、元の点のいずれかを介してラインによって分離することができる、または元の点は全く分離されません。この状態は、時間[運動] で簡単に確認できます。ℓのp個のO N ppO(n)

このアルゴリズムは、時間で実行されますアルゴリズムのランダムな選択に関して)。詳細については、元の論文または任意の数のオンライン講義ノートを参照してください。O(n)


本当にありがとう、私はこの論文を掘り下げていきます。
COM

3番目のケースでは、行がを通過する可能性があると述べていますが、それを知るのにどのように役立ちますか?p
-Tarrasch

10

2つのデータセットのプロパティは、線形分離可能性のプロパティであり 、単純に、それらを分離する線があります。多くの機械学習は、関心のある分離を実行する線である線形分類器を見つけることに専念しています。

あなたが線について話しているとき、私はあなたのポイントが平面にあると仮定します。何がやりたいことは価値見つけることです、と、その結果、すべてのポイントについてセットで、とすべての点についてで、。したがって、不等式は、セット分類器とことができます。w1w2w3(a1,a2)Aw1a1+w2a2w3(b1,b2)Bw1b1+w2b2<w3w1x+w2yw3A

最適なライン(線形回帰、ロジスティック回帰など)を決定するための機械学習アルゴリズムが多数あります。これらは、何らかのエラーメトリックに基づいて値を見つけます。次に、すべてのポイントが正しく分類されているかどうかをテストできます。つまり、すべての値が上記の式を満たし、についても同様に満たすかどうかです。w1,w2,w3AB

そのような行が存在するかどうかだけに関心があるので、既存の手法を使用する必要があります(おそらくそれはもっと簡単でしょう)。自由変数に関して次の等式のコレクションを設定するだけ。w1,w2,w3

w1a1i+w2a2iw3各ここで、。i=1,..,|A|A={(a11,a21),,(a1|A|,a2|A|)}

、J = 1 | B | B = { b 1 1b 1 2b | B | 1b | B | 2}w1b1j+w2b2j<w3各ここで、。j=1,..,|B|B={(b11,b21),,(b1|B|,b2|B|)}

これらの制約に一貫性がある場合、線が存在します。


5

覚えていれば、サポートベクターマシンは分離する超平面を構築します。次元を選択すると、当然、超平面は直線になります。満たすべき追加の前提条件があるかどうかを確認する必要がある場合があります。2次元では、アプローチ全体が大幅に簡素化される可能性があるため、ランタイムは一般的なアプローチよりも優れている場合があります。2

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.