4

私はいくつかの文書分類タスクを試していますが、SVM はこれまでのところ TF*IDF 特徴ベクトルでうまく機能しています。用語の頻度に基づいていないいくつかの新機能 (ドキュメントの長さなど) を組み込み、これらの新機能が分類のパフォーマンスに貢献するかどうかを確認したいと考えています。次の質問があります。

  1. 新しい機能を古い用語の周波数ベースの機能と単純に連結し、この異種の機能空間で SVM をトレーニングすることはできますか?
  2. そうでない場合、複数のカーネル学習は、各サブ機能空間でカーネルをトレーニングし、線形補間を使用してそれらを結合することによってそれを行う方法ですか? (まだ scikit-learn に MKL が実装されていませんよね?)
  3. それとも、MaxEnt や決定木など、異種の機能を適切に処理する代替学習器に頼るべきでしょうか?

親切なアドバイスをありがとうございました!

4

2 に答える 2

2

1)新しい機能を古い用語の周波数ベースの機能と単純に連結し、この異種の機能空間でSVMをトレーニングできますか?

scikit-learnこれに: yes のタグを付けたので、できFeatureUnionます。

2)そうでない場合、複数のカーネル学習は、各サブ特徴空間でカーネルをトレーニングし、線形補間を使用してそれらを結合することによってそれを行う方法ですか? (まだ scikit-learn に MKL が実装されていませんよね?)

線形 SVM は、このタスクの標準モデルです。カーネル メソッドは、現実世界のテキスト分類には遅すぎます ( LaSVMのようなトレーニング アルゴリズムを除きますが、scikit-learn には実装されていません)。

3) または、MaxEnt や決定木など、異種の機能を適切に処理する代替学習器に頼るべきでしょうか?

SVM は、MaxEnt/ロジスティック回帰と同様に異種機能を処理します。どちらの場合も、スケーリングされたデータを実際に入力する必要MinMaxScalerがあります。scikit-learnTfidfTransformerはデフォルトで正規化されたベクトルを生成するため、その出力をスケーリングする必要はなく、他の機能だけをスケーリングする必要があることに注意してください。

于 2013-02-05T17:45:05.433 に答える