libsvm は SVM のトレーニングに 1 対 1 の方法を使用するため、これは必要ありません (実際、libsvm のドキュメントでは、1 対 1 が 1 対 1 と比較され、より優れたパフォーマンスを示す研究記事を参照しています)。 )。4 つのカテゴリ a、b、c、d がある場合、libsvm は実際には内部で 6 つの svm を作成します。分類を行うように求められると、6 つすべてを実行し、投票システムを使用して勝者のカテゴリを決定します。これは実際には (1,0,0,..) (0,1,0..) カテゴリ入力を使用するよりも優れています。
libsvm data examplesのサンプル データ セットを見ると
、各カテゴリに整数を割り当て、その整数がエントリの先頭にあることがわかります。次に、そのデータ要素に対応する値のベクトルの各要素が続きます。たとえば、5 つのクラスにデータがあり、各データ要素に3 つのベクトルとデータ ベクトル (3.3、1.5、0.5、7.3、3.5) はクラス 4 に属し、データ ファイルの行は次のようになります。
4 1:3.3 2:1.5 3:0.5 4:7.3 5:3.5
これは本当に醜いですが、ベクトル (.5,0,0,0,.7) がカテゴリ 2 にある場合、対応するデータ行は次のようになります。 (おもう)
2 1:.5 5:.7
その価値 (私が正しければ) は、非常に大量のデータを伴う一部の問題では、膨大な量のエントリがゼロになることです。