ロジスティック回帰はすべて1を予測し、0は予測しない


10

私は、ロジスティック回帰とランダムフォレストを使用して、ローンのデフォルトの確率を分析しています。

私がロジスティック回帰を使用する場合、予測は常にすべて1です(これはローンが良いことを意味します)。私はこれを見たことがなく、問題を解決するためにどこから始めればよいかわかりません。60万行の22列があります。列の数を減らすと、ロジスティック回帰で同じ結果が得られます。

なぜロジスティック回帰はそれほど間違っているのでしょうか?

**Actual from the data**

0 :   41932

1 :   573426

**Logistic regression output** 

prediction for 1 when actually 0: 41932
prediction for 1 when actually 1:573426

A**s you can see, it always predicts a 1**


**Random forests does better:**

actual 0, pred 0 : 38800 
actual 1, pred 0 : 27 
actual 0, pred 1 : 3132
actual 1, pred 1 : 573399

4
これは意味がありません。Logitは正確に0を予測しません。0と解釈した低い値を予測する可能性があります。したがって、問題はモデル自体だけでなく、しきい値が原因である可能性があります
Aksakal

@Aksakal、私はscikit学習.predictメソッドを使用しています。 Xのサンプルのクラスラベルを予測する
ivan7707 2015

ROC曲線に精通していますか?予測された確率を抽出し、しきい値を操作してデータを自分で分類できます。しきい値は、デフォルトと非デフォルトのどちらを識別するかのトレードオフの手段です。
Aksakal

1
以下の私の回答を参照してください
。ROCを使用して

4
predict確率モデルのsklearnで使用しないでください、それは役に立たないです。常にを使用しますpredict_proba
Matthew Drury

回答:


5

まあ、それはあなたのモデルが常に予測することは理にかなっています1.あなたのデータセットを見てください:それはあなたのポジティブなクラスに有利なように著しく不均衡です。ネガティブクラスは、データの約7%にすぎません。トレーニングセットのバランスを再調整するか、コスト重視のアルゴリズムを使用してください。


入力いただきありがとうございます。不均衡なデータに許容できるもの、または提案できる再バランス方法の良い情報源についての経験則はありますか?
ivan7707 2015

残念ながら、アルゴリズムの選択方法に関するルールはありませんが、「無料ランチ定理」はありません。あなたの特定のケースでは、最初にロスクインランのC5.0パッケージを使います。次に、さまざまなコストと、アップサンプリングやダウンサンプリング、SMOTEなどのサンプリング手法を試してみることができます。さらに、Max Kuhnのサイトには、確立されたアルゴリズムのすばらしい要約が掲載されています。
ジムボーイ2015

7
(+1)コスト関数がない場合、分類器としてロジスティック回帰を使用する理由はないようです。予測された確率があり、適切なスコアリングルールを使用してモデルのパフォーマンスを評価できます。例を参照してください。不均衡データのバイナリ分類精度を評価するための基準は何ですか?。不均衡自体は問題ではありません。ダウンサンプリングはロジスティック回帰係数を変更しますか?を参照してください
Scortchi-モニカの回復

@Scortchi、リンクとコストのあるモデルを使用するアイデアをありがとう。私は正しい方向に進むこの紙のリンクを見つけることができました。
ivan7707 2015

1
いいえ、それは彼のモデルが常に1を予測するとは意味がありません。7%はデフォルトのかなり高い率であり、ロジットはローンのデフォルトで広く使用されているためです。デフォルトで年間0.1%であるAAA格付ローンを検討してください。彼は基本的にジャンクローンです。
Aksakal

13

Y


2
(+1)はい、問題は「分類の問題を解決していますか、それとも意思決定支援の問題を解決していますか?」です。
GeoMatt22、2016

1
それについてはよくわかりません。確率の推定は素晴らしい最終結果です。また、「分類」問題の大部分は、最適なベイズ決定を使用することでより適切に対処できることに注意してください。視覚と音声のパターン認識以外に、分類法が適用されるほとんどの問題は、直接確率推定でより適切に対処されます。
フランクハレル

@FrankHarrell出力を確率として解釈するには、そのような解釈(コホート)を可能にする設計が必要であることは正しいですか。そして、そのようなデザインがない場合は、「リスクスコア」に基づいて決定を行う必要があります。さらに、キャリブレーションされていない設定でこれについて議論している文献がありますが、これは実際にはそれほど一般的ではありません。これは正しいです?
ジュリーズ2016

1
モデル開発に使用されるデータセットを組み立てるために使用されるサンプリングが、予測を適用する顧客とどのように異なるか説明してください。
フランクハレル2016

たとえば、ターゲットの有病率が不明なケースコントロールサンプリング。または適度なサイズの便利なサンプル。
Julieth 2016

1

ロジットを使用して分類すると、これが起こります。

ロジットは、ローンのデフォルトの確率(PD)を予測します。これは、0から1の間の数値です。次に、しきい値Dを設定して、ローンがPD> Dの場合にデフォルトにマークし、それを非PDの場合のデフォルト

当然、典型的なローン人口ではPD << 1。したがって、あなたのケースでは、7%は1年のデータである可能性がかなり高いです(PDは通常、年間ベースで報告されます)。これが複数年のデータである場合は、いわゆる累積PDのことです。この場合、たとえば、10年のデータの場合、cumPD = 7%は大きな数値ではありません。したがって、どの基準から見ても、データセットに問題があるとは言えません。私は、それが(デフォルトが比較的多数あるという意味で)素晴らしいとは言えない場合でも、ローンのデフォルトデータの少なくとも典型的な例として説明します。

ここで、モデルが次の3つのレベルのPDを予測するとします。

  • 0.1(563,426)
  • 0.5(20,000)
  • 0.9(31,932)

また、これらのグループの実際のデフォルトは次のとおりだとします。

  • 0
  • 10,000
  • 31,932

これで、Dを異なる値に設定して、行列がどのように変化するかを確認できます。最初にD = 0.4を使用しましょう:

  • 実際のデフォルト、非デフォルトを予測:0
  • 実際のデフォルト、予測デフォルト:41,932
  • デフォルト以外の実際、デフォルト以外を予測:563,426
  • 実際の非デフォルト、予測デフォルト:10,000

D = 0.6に設定した場合:

  • 実際のデフォルト、非デフォルトの予測:31,932
  • 実際のデフォルト、予測デフォルト:10,000
  • デフォルト以外の実際、デフォルト以外の予測:573,426
  • 実際の非デフォルト、予測デフォルト:0

D = 0.99に設定した場合:

  • 実際のデフォルト、非デフォルトの予測:41,932
  • 実際のデフォルト、予測デフォルト:0
  • デフォルト以外の実際、デフォルト以外の予測:573,426
  • 実際の非デフォルト、予測デフォルト:0

最後のケースは、モデルの結果に表示されるものです。この場合、分類器のしきい値Dを強調しています。Dの単純な変更は、予測の特定の特性を改善する場合があります。3つのケースすべてで予測PDは同じままで、しきい値Dのみが変更されていることに注意してください。

もちろん、ロジット回帰自体がくだらないことも可能です。したがって、この場合、少なくとも2つの変数があります。ロジットの仕様としきい値です。どちらも予測力に影響します。


不均衡なデータを処理する手法を提案していることに気づいていますか?したがって、予測精度に対する小さいクラスの影響を認めています。さらに、元のモデルがまったく使用していない手法を提案しています。状況を好みに合わせて変更し、その後、いくつかのステートメントを作成することはできません。
ジムボーイ2015

ローンのデフォルト分析/予測では、この意味でデータは常に「不均衡」です。それは通常の状況です。
Aksakal

これはそのままかもしれません。それでも、Max Kuhnが「情報レートなし」と説明しているものを確認する必要があります。これは、データセット内の最大のクラスにすぎません。それでは、イヴァンがもう一度提供したテーブルを見てください。結果は、彼が使用したモデルにぴったりです。実際にさまざまな手法でそれらの結果を最適化できるかどうかは、別の問題であり、完全に可能です。
ジムボーイ2015

@JimBoy、私は彼のテーブルを見ました、そしてそのような多くをもっと見ました。彼はかなり単純です。通常、私たちはローンの延滞データを扱います。この場合、状態は、現在から30日の期限まで、60、90 ....デフォルトからクローズまでです。良好なポートフォリオでは、現在(クリーン)状態で95%のローンを、デフォルトでは1%だけを融資できます。人々はこの種のものに業界でいつもマルチロミアルロジットを使用しています。
Aksakal

@Aksakal、ロジスティック回帰のためにそれを変更することが数学的に正しくない方法についてたくさん読んだので、私はしきい値の変更についてもっと読む必要があります。別のメモでは、「ロジットの回帰自体がくだらないことである可能性がある」とはどういう意味ですか?
ivan7707 2015

1

問題が実際にクラス間の不均衡である場合は、クラスの重みのバランスを取ることから始めます。

log_reg = LogisticRegression(class_weight = 'balanced')

このパラメーター設定は、損失関数の誤った予測のペナルティがクラスの頻度に反比例して重み付けされることを意味します。これにより、説明した問題を解決できます。


あなたが問題を特定したかどうかははっきりしません。Matthew Druryがsklearnの使用に関連する問題に当たったと思います。
Michael R. Chernick 2017年

0

まあ、それ以上の情報がないと言うのは難しいですが、ロジスティック回帰の定義により、フィッティングされたデータに基づいて飽和しています。したがって、方程式ではe ^ -t項が0になります。したがって、最初に調べるのは、実際の係数が何であるかを確認することです。

これは、スケーリングが不十分な変数が原因である可能性もあります。列の1つが他の列と比較して数値が大きいために混乱している問題がある可能性があります。


@ティムフェルティ、応答をありがとう。係数に関して私が探しているものと、これが飽和にどのように関連するか(または、参照するリソースを私に示す)を詳しく説明してもらえますか?また、スケーリングが不十分な変数はロジスティック回帰に悪影響を及ぼさないという印象を受けました。[リンク(] stats.stackexchange.com/questions/18916/…
ivan7707

0

SMOTEを使用して、不均衡なデータセットのバランスをとることができます。参考となる優れた論文は次のとおりです。

Lifeng Zhou、Hong Wang、ランダムフォレストを使用した大規模な不均衡データに関するローンのデフォルト予測、TELKOMINIKA Indonesian Journal of Electrical Engineering、Vol.10、No.6、2012年10月、pp。1519〜1525、リンク


学術論文と同じように、完全な引用/参照(著者、日付、出版社など)を追加できますか?これにより、リンクが機能しなくなった場合に将来の読者が追跡しやすくなります
Silverfish
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.