1

LIBSVM回帰分析に使い始めています。私の世界には約 20 の特徴と数千から数百万のトレーニング サンプルがあります。

私は2つのことに興味があります:

  1. モデルの精度や信頼性を示す指標は、おそらく .model ファイルやその他の場所にありますか?

  2. 機能が重要かどうかを判断するにはどうすればよいですか? たとえば、身長、肩幅、性別、髪の色の関数として体重を予測しようとしている場合、体重の予測において髪の色は重要な特徴ではないことに気付くかもしれません。それは .model ファイルに反映されていますか、それとも調べる方法はありますか?

4

2 に答える 2

2

libSVMは、分類子の確実性に基づいてテスト ポイントの p値を計算します (つまり、テスト ポイントが決定境界からどれだけ離れているか、マージンがどのくらい広いか)。

機能の重要性の決定は、SVM のトレーニングとは別の問題と考えるべきだと思います。「機能の選択」には多くのアプローチがありますが(テキストブックを開くだけです)、理解しやすい単純なアプローチの 1 つは、次のような単純な相互検証です。

  1. データセットをk 個のフォールドに分割します(たとえば、 k = 10 が一般的です) 。
  2. k 個のフォールド のそれぞれについて:
    1. データをトレーニング/テスト セットに分割します (現在のフォールドはテスト セットで、残りはトレーニング セットです)
    2. n 個の特徴のうちn -1個のみを使用して SVM 分類器をトレーニングします
    3. 予測性能を測定する
  3. すべてのk 個のテスト フォールドについて、 n -1 個の特徴分類器のパフォーマンスを平均します。
  4. 残りのすべての機能について 1 ~ 3 を繰り返します

逆に、 n 個の機能を個別にテストすることもできますが、機能間の重要な 2 次以上の相互作用を見逃す可能性があります。

ただし、一般に、SVM は無関係な機能を無視するのが得意です。

また、主成分分析を使用してデータを視覚化して、データがどのように分布しているかを把握することもできます。

于 2011-09-16T20:49:09.160 に答える
1

F スコアは、機械学習で特徴を選択するために一般的に使用される指標です。

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

python fselect.py data_training data_testing

出力は、モデルの結果 (回帰スコア) に対するその機能の重要性に対応する、データ セット内の各機能のfscoreで構成されます。

于 2011-09-16T21:11:01.190 に答える