2

SVMlightフレーズを肯定的または否定的に分類するために使用する場合LIBSVM(感情分析)、アルゴリズムの決定に影響を与えた最も影響力のある単語を特定する方法はありますか? たとえば、単語"good"がフレーズを肯定的に判断するのに役立つことがわかった、など。

4

2 に答える 2

5

線形カーネルを使用する場合は、はい - 単純に重みベクトルを計算します。

w = SUM_i y_i alpha_i sv_i

どこ:

  • sv- サポート ベクター
  • alpha- SVMlightで見つけた係数
  • y- 対応するクラス (+1 または -1)

(一部の実装でalphaは、 は既に乗算されy_iているため、正/負です)

データ次元 (バッグ オブ ワード/tfidf 表現内の単語数) の次元を取得したら、最も重要w1 x d特徴(d言葉)。

カーネル (RBF など) を使用する場合、答えはノーです。分類プロセスがまったく異なる方法で実行されるため、最も重要な機能を取り出す直接的な方法はありません。

于 2013-12-29T23:27:55.940 に答える
3

@lejlot が述べたように、SVM の線形カーネルでは、機能ランキング戦略の 1 つがモデルの重みの絶対値に基づいています。もう 1 つのシンプルで効果的な戦略は、F スコアに基づいています。各機能を個別に考慮するため、機能間の相互情報を明らかにすることはできません。また、特徴を削除して分類のパフォーマンスを観察することで、特徴の重要性を判断することもできます。

機能ランキングの詳細については、この記事を参照してください。

SVM の他のカーネルでは、機能のランキングはそれほど単純ではありませんが、それでも実行可能です。カーネル空間で基底ベクトルの直交セットを構築し、カーネル リリーフによって重みを計算できます。次に、重みの絶対値に基づいて、暗黙的な特徴のランキングを実行できます。最後に、データは学習した部分空間に射影されます。

于 2013-12-30T03:29:03.243 に答える