3

正規化されたバイナリ分類に scikit-learn の LogisticRegression オブジェクトを使用しています。ドキュメントを読みましたが、intercept_scalingこの値を賢く選択する方法がわかりません。

データセットは次のようになります。

  • 10 ~ 20 個の機能、300 ~ 500 回の複製
  • 非常に非ガウス的で、実際にはほとんどの観測値はゼロです
  • 出力クラスは必ずしも同じ確率ではありません。ほぼ 50/50 の場合もあれば、90/10 に近い場合もあります。
  • 通常C=0.001、良好な相互検証結果が得られます。

intercept_scalingドキュメントには、他のすべての機能と同様に、インターセプト自体が正規化の対象であり、これに対処するために使用できるという警告が含まれています。しかし、この値をどのように選択すればよいでしょうか? 簡単な答えの 1 つは、 と の多くの可能な組み合わせを調べCintercept_scaling、最高のパフォーマンスが得られるパラメーターを選択することです。しかし、このパラメータの検索にはかなりの時間がかかるので、できればそれは避けたいと思います。

理想的には、切片を使用して出力予測の分布を制御したいと考えています。つまり、分類子がトレーニング セットで「クラス 1」を予測する確率が、トレーニング セット内の「クラス 1」データの割合と等しくなるようにしたいと考えています。これが特定の状況下で当てはまることは知っていますが、私のデータではそうではありません。それが正則化によるものなのか、入力データの非ガウス性によるものなのかはわかりません。

ご提案ありがとうございます。

4

1 に答える 1

1

class_weight="auto"?を設定して陽性クラスをオーバーサンプリングしようとしましたが、これは、過小評価されたクラスを効果的にオーバーサンプリングし、多数派クラスをアンダーサンプリングします。

(現在の安定版ドキュメントSVCは、 LR 用にコピー アンド ペーストされ、編集されていないように見えるため、少し混乱しています。ブリーディング エッジ バージョンで変更されたばかりです。)

于 2013-07-18T20:33:44.337 に答える