私はpythonでsklearnのロジスティック回帰の分類問題を解決しています。クラスが不均衡なsklearnロジスティック回帰
私の問題は一般的なものです。 2つのクラス/結果(正/負または1/0)のデータセットがありますが、このセットは非常に不均衡です。 〜5%のポジティブと〜95%のネガティブがあります。
このような不均衡な問題に対処する方法はいくつかありますが、sklearnパッケージを使用して正しく実装する方法についての良い説明は見つかりませんでした。
私がこれまで行ってきたことは、肯定的な結果とランダムに選択された負のエントリの数が等しいエントリを選択することによってバランスの取れたトレーニングセットを構築することでした。私はこのモデルをこのセットに訓練することができますが、モデルを修正して元の不均衡な母集団/集合を処理する方法に悩まされています。
これを行う具体的な手順は何ですか?私はSklearnの文書や例を書いてきましたが、良い説明は見つかりませんでした。
はい、class_weight = 'auto'はうまく動作します。ビルトイン/ブラックボックスの自動重量を使用しないで、トレーニングセットを再バランスさせるのに利点はありますか?それにもかかわらず、トレーニングセットのバランシングのアプローチをとった場合、バランスのとれていないテストセットに適用するために適合/訓練されたモデルを調整するにはどうすればよいですか? – agentscully
それはブラックボックスではありません。アルゴリズムによって最適化されている経験的な目的関数のサンプルを再重み付けするだけです。 トレーニングが速いため、過大表現のクラスをアンダーサンプリングするのは良いですが、特にモデルがオーバーフィッティング領域にある場合(列車とテストのスコアの間に大きな差がある場合)は、データが欠落しています。 オーバーサンプリングは、再重み付けとは数学的には同等ですが、重複した操作のために遅くなります。 – ogrisel