2011-09-16 16 views
1

私は回帰分析にLIBSVMを使用し始めています。私の世界には約20の機能と数千から数百万のトレーニングサンプルがあります。私は2つの事について興味モデルの精度とSVMの特徴の重要度を測定

  1. は、おそらくの.modelファイルまたは他の場所では、モデルの精度や信頼性を示しメトリックはありますか?

  2. 機能の重要性を判断するにはどうすればよいですか?たとえば、身長を身長、肩幅、性別、髪色の関数として予測しようとすると、髪色は体重を予測する重要な特徴ではないことがわかります。それは.modelファイルに反映されているのですか、それとも何か見つけ出す方法がありますか?

答えて

2

LIBSVM(すなわち、どの程度までテスト点が決定境界からのものであり、マージンがどのように広い)分類器の確実性に基づいて、テストポイントのP - 値を算出します。

私はあなたのSVMを訓練することとは別に、機能の重要性を判断することを検討すべきだと思います。

  1. 分割データセットをKへ:トン「機能の選択」(ちょうど開く任意のテキストブック)のためのアプローチのが、1つ次のように、簡単な方法は、単純なクロスバリデーションだろう理解しやすいがあります。ひだ(例えば、K = 10が一般的です)K折り目のそれぞれについて
    1. 残りは訓練され、現在の倍はテストセットである(電車/テスト・セットにデータを区切りセット)
    2. 予測性能
  2. 平均すべてのkのためのあなたののn -1機能分類器のパフォーマンスを測定のみN -1あなたN機能
  3. のを使用して、SVM分類器をトレーニングテストフォールド
  4. 残りのすべての機能について1-3を繰り返します。

nの機能を個別にテストする場合は、逆の操作を行うこともできますが、機能間の重要な2次以上の重要な対話を見逃す可能性があります。

しかし、一般的に、SVMは無関係な機能を無視するのに適しています。

また、プリンシパルコンポーネント分析を使用してデータを視覚化し、データがどのように配布されているかを知ることができます。

+0

「libSVMは分類子の確信度に基づいてテストポイントのp値を計算する」 - 私は回帰をして分類をしていないという違いがありますか? –

+0

私は回帰のためにlibsvmを使ったことがないので、わかりません。 – awesomo

1

F-スコアは、一般的にのために使用されるメトリックは、機械学習で選択が特徴です。

バージョン3.0以降、LIBSVMライブラリにはツールというディレクトリがあります。このディレクトリにはと呼ばれるpythonスクリプトfselect.pyがあり、Fスコアを計算します。それを使用するには、コマンドラインから実行し、トレーニングデータ(およびオプションでテストデータファイル)で構成されるファイルを渡します。

python fselect.py data_training data_testing 

出力は、モデル結果(回帰スコア)にその機能の重要性に対応するデータセットにおける特徴の各々についてfscoreから構成されています。

+0

それは私の質問のパートIIのためのトリックを行うように見えます。 FWIW、fselect.pyはlibsvm-3.1のtoolsディレクトリ(www.csie.ntu.edu.tw/~cjlin/libsvm/)に含まれていますが、www.csie.ntu.edu.twから別途ダウンロードできます/~cjlin/libsvmtools/fselect/fselect.py –

+0

typo:...はtoolsディレクトリには含まれていません... –

+0

@ fearless_fool - Qの両方の部分に対処するための回答を意図しました。 _F-statistic_(またはF-score)は、パートIへの私の答えです。 – doug