1

サポート ベクター マシンなど、スペースを半分に分割するアルゴリズムを一般化して、整数などのセットからのラベルを使用してデータにラベルを付けるにはどうすればよいでしょうか?

たとえば、サポート ベクター マシンは、超平面を構築することによって動作し、超平面の「上」にあるものは 1 つのラベルを取り、その下にあるものは別のラベルを取ります。

これをどのように一般化して、ラベルがたとえば整数やその他の任意の大きなセットになるようにするのでしょうか?

4

2 に答える 2

5

1 つのオプションは、「one-vs-all」アプローチです。このアプローチでは、分割したいセットごとに 1 つの分類子を作成し、最も確率の高いセットを選択します。

たとえば、 からのラベルでオブジェクトを分類するとします{1,2,3}。次に、3 つのバイナリ分類子を作成できます。

  • C1 = 1 または (1 ではない)
  • C2 = 2 または (2 ではない)
  • C3 = 3 または (3 ではない)

これらの分類器を新しいデータ X に対して実行すると、以下が返される可能性があります。

  • C1(X) = 1 に入る確率 31.6%
  • C2(X) = 2 に入る確率 63.3%
  • C3(X) = 89.3% の確率で 3 に入る

これらの出力に基づいて、X をクラス 3 からのものである可能性が最も高いものとして分類できます (確率の合計は 1 になりません。これは、分類器が互いを認識していないためです)。

出力ラベルが順序付けられている場合 (任意の順序付けではなく、何らかの意味のある順序で)。たとえば、金融では、株式を {BUY, SELL, HOLD} に分類したいとします。これらに対して正当に回帰を実行することはできませんが(データは比率データではなく序数です) 、-1、0、および 1 の値を SELL、HOLD、および BUY に割り当てて、比率データがあるふりをすることができます。理論的に正当化されていなくても、これにより良い結果が得られる場合があります。

于 2012-06-15T10:19:34.880 に答える
2

もう 1 つのアプローチは Cramer-Singer 法です (「マルチクラス カーネルベースのベクトル マシンのアルゴリズム実装について」)。Svmlight はhttp://svmlight.joachims.org/svm_multiclass.htmlに実装しています。

無限集合 (整数の集合など) への分類は、順序回帰と呼ばれます。通常、これは連続値の範囲をセットの要素にマッピングすることによって行われます。( http://mlg.eng.cam.ac.uk/zoubin/papers/chu05a.pdf、図 1a を参照)

于 2012-06-16T17:21:52.707 に答える