正規化されたバイナリ分類に scikit-learn の LogisticRegression オブジェクトを使用しています。ドキュメントを読みましたが、intercept_scaling
この値を賢く選択する方法がわかりません。
データセットは次のようになります。
- 10 ~ 20 個の機能、300 ~ 500 回の複製
- 非常に非ガウス的で、実際にはほとんどの観測値はゼロです
- 出力クラスは必ずしも同じ確率ではありません。ほぼ 50/50 の場合もあれば、90/10 に近い場合もあります。
- 通常
C=0.001
、良好な相互検証結果が得られます。
intercept_scaling
ドキュメントには、他のすべての機能と同様に、インターセプト自体が正規化の対象であり、これに対処するために使用できるという警告が含まれています。しかし、この値をどのように選択すればよいでしょうか? 簡単な答えの 1 つは、 と の多くの可能な組み合わせを調べC
てintercept_scaling
、最高のパフォーマンスが得られるパラメーターを選択することです。しかし、このパラメータの検索にはかなりの時間がかかるので、できればそれは避けたいと思います。
理想的には、切片を使用して出力予測の分布を制御したいと考えています。つまり、分類子がトレーニング セットで「クラス 1」を予測する確率が、トレーニング セット内の「クラス 1」データの割合と等しくなるようにしたいと考えています。これが特定の状況下で当てはまることは知っていますが、私のデータではそうではありません。それが正則化によるものなのか、入力データの非ガウス性によるものなのかはわかりません。
ご提案ありがとうございます。