0

私の目標は、マルチクラス分類器を作成して、少なくとも 2 つのクラス (またはラベル) でラベル付けされるさまざまなファイルを操作することです。これらのファイルは議会のイニシアチブであるため、各ファイルは少なくとも 1 組の値で類義語辞典に索引付けされます。

Snowball、NLTK ...

このバージョンでは、マルチ分類を直接使用する
ことはできません。ただし、合計 k * (k-1) / 2 (「k」はクラスの数) を生成するマルチクラス分類モデルをプログラムすることは可能です。

LIBSVM の表現は次のとおりです。

<class/target>[ <attribute number>:<attribute value>]*   

次に、5 つのクラスを持つファイルの場合、クラスを変更するだけで前の行の 5 回を生成する必要がありますか?

例えば:

1 1:3 2:4 6:5….
2 1:3 2:4 6:5….
3 1:3 2:4 6:5….
4 1:3 2:4 6:5….
5 1:3 2:4 6:5….

ありがとうございます。

4

1 に答える 1

1

あなたは混乱しています

  • マルチクラス シナリオ - 一般に 2 つ以上のクラスが存在するが、各オブジェクトには正確に 1 つのクラスが割り当てられる
  • マルチラベル シナリオ -各オブジェクトに複数のラベルが割り当てられている場合

SVM は、基本的な定式化/実装では、上記のいずれも実行できません。これらの問題は両方とも簡単に分解できますが。

最初の 1 つは、多くの場合、1 対すべてまたは 1 対 1 を使用してアプローチされます。どちらも に実装されてscikit-learnおり、Python が libsvm にバインドされています。

あなたのシナリオは multilabel のように見えますこのような場合、基本的な svm は、問題を K 個の独立したものに分割することによってのみ使用できます。単に K 個の個別のトレーニング セットを作成し、それぞれが「与えられたファイルにはラベル i がありますか?」という質問に答えます。K個の異なるSVMをトレーニングすると、それぞれが答えの1つを提供するだけです(ラベリング手順は独立していると仮定していますが、これは単純化ですが、他のアプローチではsvmstructで利用可能なような構造的SVMアプローチが必要になります)。

マルチラベル分類用に単一の libsvm トレーニング ファイルを作成することはできません。あなたが引用するドキュメントは multiclass を参照してますが、これはあなたのケースではなく、行を複製するのではなく、単に K 個の異なるラベル名を使用する必要があります。

于 2015-04-22T09:44:35.080 に答える