0

私はsklearnを使用して一部のデータを学習しています。これはバイナリ分類タスクであり、私はRBFカーネルを使用しています。私のデータセットはかなり不均衡(80:20)で、120サンプルしか使用せず、10インチのフィーチャーを使用しています。私がclass_weight="auto"を設定して以来、十字型(10倍)のgridsearchから計算した精度は劇的に低下しました。なぜ??クラスウェイトを使用してデータセットのバランスを調整すると、RBF SVMの精度が低下する

違いを実証するために、2つの検証精度ヒートマップが含まれます。 This is before I changed class weight to auto

This is with class weight set to auto

注:classweightがautoに変更された前のトップのヒートマップです。

答えて

0

不均衡なデータセットを扱う際には、精度は最適なメトリックではありません。 99の正例と1つの負の例があり、すべての出力が正であると予測した場合でも、99%の精度を得ることができますが、唯一の負の例を誤って分類したとしましょう。あなたの予測はサンプル数の多い側にあるため、最初のケースで高い精度を得ている可能性があります。

class weight = autoとすると、不均衡が考慮されるため、予測が中央に向かって移動している可能性があります。予測のヒストグラムをプロットすることでクロスチェックできます。

パフォーマンスメトリックとして精度を使用しないことをお勧めします。F1 ScoreまたはAUCなどを使用してください。

+0

私は本当の肯定的な率をチェックしているだけでなく、正確なパフォーマンスを分析して、クラスの重みを変更する前に、プレディクタは(最高で)マイノリティグループの24のうち5または6を得ました。しかし、まだそれを変更した後、複数を取得する – bidby

関連する問題