4

libSVM の重みオプションについて助けが必要です。私はある時点で混乱しています。交差検証を行う際に -wi オプションも使用する必要がありますか? もしそうなら、データ全体の計算された重みを使用するべきですか、それとも v-1 サブセットに従って計算された重みを使用すべきですか (v 分割交差検証用)? 2 番目の質問は、予測中に -wi オプションを使用する必要があるかどうかです。その場合、トレーニング中に計算された重みを使用する必要がありますか?それとも、テスト データの負のインスタンスと正のインスタンスの分布に従って重みを計算する必要がありますか?

例えば; 50 + データと 200 - データがあります。したがって、最適な c およびガンマ パラメータ値を計算した後、トレーニング中に -w1 4 -w-1 1 オプションを使用します。しかし、グリッド検索と交差検証中のトレーニングはどうでしょうか? 5 分割交差検証を実行しているとしましょう。残りの 4 つのサブセットごとにトレーニングしている間、ネガティブ インスタンスとポジティブ インスタンスの分布はおそらく変化します。では、この 5 分割交差検証中に重みを再計算する必要があるでしょうか?

また、テスト中に -w1 4 -w-1 1 オプションを使用する必要がありますか?

ありがとう

4

1 に答える 1

6

最初の質問に答えるには、モデルのトレーニング中にクラスのサブセットに重要な重みを適用する場合は、C とガンマのクロス検証ベースのチューニングを含むトレーニング/チューニング全体で同じことを行う必要があります (そうしないと、自明でないクラスの重みを有効にして実際に指定しているものとは異なる、コストに敏感な目的/リスク/損失関数に基づいてモデルを調整する)

クラスの重みは、libSVM によって計算されないという意味で、libSVM の外部にあります。このコマンドライン オプションにより、ユーザーは独自のクラスの重みを設定して、クラスのサブセットの重要性を強調/削減できます。クラスの重みを調整する人もいますが、それは別の話です。

予測に関しては、クラスの重みはそこでは明示的に使用されません (モデルのトレーニング/調整段階で目的/リスク/損失関数に「微調整」として組み込まれるため、結果のモデルは既に重みを「認識」しています)。 )

于 2012-01-03T17:59:13.163 に答える