財務リスク管理プロジェクトの Combat-Python スコアカード

信用リスク測定モデルには、個人の信用格付け、企業の信用格付け、国家の信用格付けが含まれます。個人信用格付けは一連の格付けモデルで構成されており、一般的なものは、A カード (アプリケーション スコアリング カード)、B カード (行動モデル)、C カード (収集モデル)、および F カード (不正防止モデル) です。今日は、個人信用格付けモデルの開発プロセスを示します。データは、kaggleで設定されたよく知られた Give me some Credit データを使用します。

1. モデリングプロセス

典型的なクレジット スコアカード モデルを図 1-1 に示します。信用リスク格付けモデルの主な開発プロセスは以下のとおりです。
(1) 融資を申し込む顧客データを含むデータを取得します。データには、年齢、性別、収入、職業、家族人数、住宅事情、消費状況、借金など、さまざまな側面の顧客が含まれます。
(2) データ前処理。主な作業には、データクリーニング、欠損値処理、外れ値処理、データ型変換などが含まれます。生データをレイヤーごとにモデル化可能なデータに変換する必要があります。
(3) EDA の探索的データ分析および記述統計。これには、全体のデータ サイズ、優良顧客と不良顧客の割合、データ タイプ、変数欠損率、変数頻度分析ヒストグラム視覚化、箱ひげ図視覚化、変数相関視覚化などの統計が含まれます。
(4) デフォルトのステータスに最も重大な影響を与える変数を選別するための、統計的および機械学習の手法による変数の選択。iv、特徴量重要度、分散など、一般的な変数選択方法が多数あります。また、欠損率の高い変数も削除することをお勧めします。また、ビジネス説明変数や値変数を持たない変数も削除することをお勧めします。
(5) モデル開発。スコア カード モデリングの主な困難は、ウォー ビニング、スコア ストレッチ、および変数係数の計算です。中でも、Woe Binning はスコアカードの中で最も難しいポイントの 1 つであり、豊富な統計知識とビジネス経験が必要です。現在、50 を超えるビニング アルゴリズムがあり、統一されたゴールド スタンダードはありません。一般に、マシンは最初に自動的にビニングを行い、次に手動でビニングを調整し、最後にモデルの最終パフォーマンスを繰り返しテストして、最適なビニング アルゴリズムを選択します。 。
(6) モデル検証。モデルの識別能力、予測能力、安定性、分類能力などを検証し、モデル評価レポートを作成して、モデルが使用可能かどうかを結論付けます。モデルの検証は一度に行うのではなく、モデリング後、モデルの発売前、モデルの発売後に定期的に検証されます。モデルの開発とメンテナンスは、1 回限りのプロセスではなくサイクルです。
(7) クレジット スコアカード。ロジスティック回帰の変数係数と WOE 値に基づいてスコアカードを生成します。スコアカードはビジネスの解釈に便利で、何十年も使用されており、非常に安定しており、金融業界で愛用されています。この方法は、ロジスティック モデルの確率スコアを 300 ~ 900 点の標準スコア形式に変換することです。
(8) スコアカードモデルシステムを確立し、クレジットスコアカード方式に基づくコンピュータによる自動信用スコアリングシステムを確立する。米国の伝統的な製品である FICO にも同様の機能があり、FICO の基盤言語は Java です。Java、Python、または R は、スコアカード自動化モデル システムを構築するために現在人気のある言語です。

(9) モデルのモニタリング 時間の経過とともに、 ksや aucなどのモデルを区別する能力が徐々に低下し、モデルの安定性も変化します。専門のモデル監視チームが必要です。監視の結果、モデルの識別力の大幅な低下やモデルの安定性の大きな変化が示された場合、モデルを再開発し、モデルを反復する必要があります。モデル監視チームは、毎日時間通りに関連チーム、特に開発チームとビジネス チームにモデル監視レポートを電子メールで送信する必要があります。

ここに画像の説明を挿入

2. データを取得する

前に、ドイツの信用データセットを使用して Python 信用スコアカード モデルを構築することについて説明しましたが、このデータセットの利点は、データ量が少なく、高度なコンピューター ハードウェアを必要としないことです。学んでテストする。

写真

信用スコアリング アルゴリズムはデフォルトの確率を推測し、銀行が融資を許可すべきかどうかを判断するために使用します。このデータは個人消費者ローンに関するもので、今後 2 年以内に誰かが経済的に困窮する可能性を予測することで、最先端の信用スコアを向上させます。

銀行は市場経済において重要な役割を果たしています。彼らは誰がどのような条件で資金を得るのかを決定し、投資の決定を下したり、投資を終了したりすることができます。市場や社会が機能するためには、個人や企業が信用にアクセスする必要があります。

Give me some Creditは15万件のサンプルデータを保有しており、中堅・大手金融機関の実戦データを解決し、金融企業プロジェクトの実戦に近づけています。このデータセットは、誰かが今後 2 年以内に経済的困難を経験する可能性を予測することで、信用スコアを向上させます。

写真

変数の中国語の解釈。変数は少ないですが正確で、モデリングの参考として使用できます。

写真

上記の変数を次のように分類します。

– 基本属性: 当時の借り手の年齢を含む。

– 債務支払い能力: 借り手の利用可能なライン比率、月収、負債比率が含まれます。

– 信用履歴: 2 年間の延滞回数 35 ~ 59 日、2 年間の延滞回数 60 ~ 89 日、2 年間の延滞回数 90 日

期限を過ぎた日または 90 日を超えた場合。

– 不動産ステータス: オープンクレジットとローンの数、不動産ローンまたはラインの数が含まれます。

– その他の要素: 借り手の扶養家族の数 (借り手自身を除く)

kaggleモデルコンペではボーナス5,000ドル、モデル評価指標はAUCとなります。

写真

国内外のインターネット上に設定された「Give me some Credit」データの最高の AUC スコアは 0.85 です。

写真

ただし、「Python クレジット スコア カード モデリング (コードあり)」チュートリアルの AUC は 0.929 に達する可能性があり、パラメーター調整後の AUC はさらに高くなる可能性があります。これは、「クレジット ペーパーをください」のモデル パフォーマンス AUC=0.85 よりもはるかに高くなります。インターネット上で。インターネットの論文には、モデリングのステップに関して、もっともらしいが実際には不正確な理論がたくさん掲載されています。

写真

「Give me some Credit data set」で AUC 0.929 を達成する方法に興味がある場合は、チュートリアル「Python クレジット スコア カード モデリング (コード付き)」を参照してください。

「Python クレジット スコアカード モデリング (コード付き)」の Give me some Credit データセットの概要。

写真

3. データの前処理

データ前処理の主な作業には、データクリーニング、欠損値処理、外れ値処理、データ型変換などが含まれます。生データをレイヤーごとにモデル化可能なデータに変換する必要があります。


3.1 欠損値の処理

Give me some Credit データセットの欠損データは深刻ではありません。欠損値があるのは 2 つの変数のみで、欠損率は 2% と 19.8% です。

写真

実際には、データに多数の欠損値が含まれることが非常に一般的です。中央銀行の信用調査における多くの変数の欠落率は 99% に達する場合があります。欠損値は、一部のデータ分析やモデリングで問題を引き起こす可能性があります。通常、信用リスク スコアカード モデル開発の最初のステップでは、欠損値を扱います。欠損値処理には以下のような方法があります。
(1) 欠損値を含むサンプルを直接削除します。
(2) 欠損値を埋めます。
(3) 無視してください。

3.2 外れ値の処理

欠損値の処理後、外れ値テストを実行する必要があります。外れ値は、統計的な外れ値とビジネスの外れ値に分類されます。統計的外れ値は通常、次の図に示すように箱ひげ図によって判断されます。

写真

ビジネスにおける異常値とは、変数の定義や業務分野の常識に基づいてデータが妥当かどうかを判断することです。たとえば、「give me some Credit」データセットでは、個々の顧客の年齢は 0 です。常識的には、この値は外れ値であると考えられます。0歳からでもお金を貸してくれるローン会社はどこ?

写真

3.3 データのパーティショニング

モデルを構築した後、一般に次の 3 つの状況、つまり、過小適合、適切な適合、過大適合の 3 つの状況に遭遇します。

写真

モデルのパフォーマンスを検証するには、データセットを分割する必要があります。

まず、すべてのデータを x データと y データ (ターゲットのターゲット変数) に分割します。

次に、x データと y データをトレーニング セットとテスト セットに分割し、4 つの変数 train_x、test_x、train_y、test_y を生成します。

写真

4. EDAの探索的データ分析と記述統計

人間の脳の生理学的構造により、ほとんどの人は数字に敏感ではありませんが、データの視覚化は脳の理解に適しています。これがデータの視覚化の重要性であり、リーダーや意思決定者への報告にも便利です。

写真

EDA の探索的データ分析と記述統計には、全体のデータ量、優良顧客と不良顧客の割合、データ タイプ、変数欠損率、変数頻度分析ヒストグラム視覚化、箱ひげ図視覚化、変数相関視覚化などに関する統計が含まれます。EDAとはExploratory Data Analysisの略で、中国語訳は探索的データ分析です。ヒスト ヒストグラム、散布図、ボクサーボックスプロット、ヒート ヒート マップ、ペアプロット ペアリング マップなど、一般的な探索データ分析方法が多数あります。

「Give me some Credit」データセットの年齢変数ヒストグラム

写真

Give me some Credit データセットのターゲット変数ヒストグラムは、良い顧客と悪い顧客の割合が非常に不均衡であることを示しています。良い顧客の数は悪い顧客の数の約 15 倍です。

写真

「Give me some Credit」データセット内の可変家族数のヒストグラム

写真

Give me some Credit データ セット内のすべての変数のペアプロット ペアリング ダイアグラムでは、多くの情報が一目でわかります。

写真

Give me some Credit データセット内のすべての変数の相関関係のヒート マップを分析すると、非常に高い変数相関関係が 6 ペア存在することがわかり、変数をスクリーニングする際には注意を払う必要があります。

写真

Give me some Credit データ セットの年齢変数は、優良顧客と不良顧客の分類ボックス プロット統計に関するものです。優良顧客の年齢中央値は、悪い顧客の年齢中央値よりも高いことがわかります。

写真

5. 変数の選択

デフォルトのステータスに最も大きな影響を与える変数を選別するための、統計および機械学習の手法による変数の選択。iv、特徴量重要度、分散など、一般的な変数選択方法が多数あります。また、欠損率の高い変数も削除することをお勧めします。また、ビジネス説明変数や値変数を持たない変数も削除することをお勧めします。

「Python クレジット スコア カード モデリング (コード付き)」チュートリアルの統合ツリー アルゴリズム catboost の機能重要度の視覚化では、REVOVUtilizationOfUnsecuredLines 利用可能量比率変数が最も重要であることが明確にわかります。図の青いバーが長いほど重要度が高く、その逆も同様です。

写真

「Python クレジット スコアカード モデリング (コード付き)」チュートリアルにおける変数 iv 値の計算結果は以下の通りで、REVOVUtilizationOfUnsecuredLines の利用可能額比率変数の iv 値が最も高いことがよくわかります。

写真

特徴量の重要性と iv 値の方法を通じて、同じ結論を得ることができます。REVOLUTIONUtilizationOfUnsecuredLines の使用可能なクォータ率変数が最も重要です。

6. モデル開発

モデル開発とスコアカード モデリングにおける主な困難は、Woe Binning、スコア ストレッチング、および変数係数の計算です。中でも、Woe Binning はスコアカードの中で最も難しいポイントの 1 つであり、豊富な統計知識とビジネス経験が必要です。現在、50 を超えるビニング アルゴリズムがあり、統一されたゴールド スタンダードはありません。一般に、マシンは最初に自動的にビニングを行い、次に手動でビニングを調整し、最後にモデルの最終パフォーマンスを繰り返しテストして、最適なビニング アルゴリズムを選択します。 。

「Python クレジット スコア カード モデリング (コード付き)」では、Kmeans、等頻度ビニング、等距離ビニング、カイ 2 乗ビニング、デシジョン ツリー ビニング アルゴリズムの原理、およびビニング コードを実現するための Python について説明します。「Python クレジット スコア カード モデリング (コード付き)」では、ビニング方法の選択方法も説明しています。さまざまなニーズに応じて、最適なビニング方法を選択します。

写真

ビニングは主に教師ありメソッドと教師なしメソッドに分けられます。K 平均法クラスタリング アルゴリズム (k-means クラスタリング アルゴリズム) は、反復クラスタリング分析アルゴリズムです。その手順は、事前にデータを K 個のグループに分割し、最初のクラスター中心として K 個のオブジェクトをランダムに選択し、それらの間の距離を計算します。各オブジェクトと各シード クラスターの中心を、各オブジェクトに最も近いクラスターの中心に割り当てます。クラスターの中心とそれに割り当てられたオブジェクトはクラスターを表します。サンプルが割り当てられるたびに、クラスター内の既存のオブジェクトに基づいてクラスターのクラスター中心が再計算されます。このプロセスは、特定の終了条件が満たされるまで繰り返されます。終了条件としては、別のクラスターに再割り当てされるオブジェクトが存在しない (または最小数)、クラスター中心が再び変更されない (または最小数)、誤差の二乗和が局所的に最小化されることが考えられます。以下の図は、Kmeans ビニング アルゴリズムの原理を示しています。

写真

伝説的な最適ビニングはデシジョン ツリー ビニングです。

デシジョン ツリー ビニング アルゴリズムの手順は次のとおりです。

ステップ 1 : まず、離散化したい変数を使用して、有限の深さ (2、3、または 4) の決定木をトレーニングし、ターゲットを予測します。

_ステップ 2:_次に、元の変数値をツリーから返された確率に置き換えます。単一ビン内のすべての観測値は同じ確率を持つため、確率を置換することは、決定木によって決定されたカットオフ内で観測値をグループ化することと同じです。

デシジョン ツリー ビニング アルゴリズムの長所と短所は次のとおりです。

利点:

  • 確率的予測によって返される決定木は、ターゲットと単調に関連しています。

  • 新しいビンは、エントロピーの減少を示します。これは、各ビン/バケット内の観測値が、他のビン/バケット内の観測値と比較して、それ自体とどの程度類似しているかを示します。

  • ツリーは自動的にビンを見つけます。

欠点:

  • 過剰適合につながる可能性があります

  • さらに、最適な分割(深さ、パーティション内のサンプルの最小数、パーティションの最大数、最小の情報利得など)を達成するには、ツリーパラメータの調整が必要になる場合があります。これには時間がかかる場合があります。

写真

                                (决策树分箱可视化)


  • 1
  • 2
  • 3

等距離ビニングは、年齢などの変数に使用できます。

写真

ビニングが完了すると、ビニングされたデータは悲惨なデータに変換され、最終的にロジスティック回帰アルゴリズムでモデル化されます。

7. モデルの検証

ロジスティック回帰アルゴリズムのモデリングの後、モデルの検証が必要です。モデル検証とは、モデルの識別能力、予測能力、安定性、分類能力などの指標が適格であるかどうかを検証し、モデル評価レポートを作成して、モデルが使用可能かどうかを結論付けることです。モデルの検証は一度に行うのではなく、モデリング後、モデルの発売前、モデルの発売後に定期的に検証されます。モデルの開発とメンテナンスは、1 回限りのプロセスではなくサイクルです。

時間が経つと、ks、auc などのモデルの識別能力が徐々に低下し、モデルの安定性も変化します。モデルの識別能力が大幅に低下した場合、またはモデルの安定性が大きく変化した場合は、モデルを再開発してモデルを反復する必要があります。

「Python クレジット スコアカード モデリング (コード付き)」チュートリアルのトレーニング モデルの AUC は 0.929 です。具体的なモデルのパフォーマンスは次のとおりです。

モデルの精度は: 0.9406307593547452

モデルの精度は: 0.9060132575757576

モデルの感度は: 0.6077497220898841

f1_スコア: 0.7274973861800208

AUC: 0.9290751730536397

良い分類子

ジニ 0.8581503461072795

ks値:0.7107

これは、インターネットのモデル パフォーマンス AUC 0.85 をはるかに上回っており、クレジット データ セット モデリング ペーパーを提供します。

写真

8. スコアカードの誕生

===

このモデルは、ロジスティック回帰変数係数と WOE 値に基づいてスコアカードを生成します。スコアカードはビジネスの解釈に便利で、何十年も使用されており、非常に安定しており、金融業界で愛用されています。この方法は、ロジスティック モデルの確率スコアを 300 ~ 900 点の標準スコア形式に変換することです。アメリカの FICO スコアは、ほとんどの国内クレジット スコア カードでエミュレートされています。

FICO スコアが 800 以上の個人には特別な信用履歴があります。信用スコアが高い人は、長年にわたって複数の信用枠を持っている可能性があります。彼らは与信限度額を超えることはなく、すべての借金を期限内に返済しました。

FICO スコアは 700 中~後半が良好なスコアです。この範囲のスコアを持つ人は賢く借りて使い、適時に支払いを行っています。800 歳以上の高齢者など、これらの人々はクレジットを利用しやすい傾向にあり、多くの場合、はるかに低い金利を支払います。

最も一般的なスコアは 650 ~ 750 です。この範囲のスコアを持つ個人はかなり信用度が高いですが、支払いが遅れる可能性があります。こうした人々は通常、ローンを組むのに苦労しません。ただし、若干高い金利を支払わなければならない場合があります。

考慮すべき最後の実際的な範囲は、599 以下のスコアです。これらは信用スコアが低いとみなされ、通常は複数回の支払い遅延、支払い漏れ、または回収業者に移管された借金の結果です。このような FICO スコアを持つ個人が何らかの形でクレジットを取得することは、不可能ではないにしても、多くの場合困難です。

写真

以下の図に示すように、非常に悪い 300 ~ 579 の FICO 信用スコアが最も低い割合 (わずか 17%) を占め、良い 670 ~ 739 の割合が最も高く、21.5% に達します。

写真

「Python Credit Scorecard Modeling (with code)」では、スコアカードの生成を説明する詳細な章があり、PDO、theta0、P0、A、B、ods、woe、iv、その他の専門用語が完全に説明されています。

写真

9. スコアカード自動採点システム

上記の基礎に基づいて、自動スコアリング システムを生成して、良い顧客と悪い顧客の実際のラベル、良い顧客と悪い顧客の予測ラベル、悪い顧客の確率値、および各アプリケーション フォーム ユーザーのストレッチ スコアを生成できます。

写真

クレジットスコアカード方式に基づいて、コンピュータによる自動クレジットスコアリングシステムを構築できます。米国の伝統的な製品である FICO にも同様の機能があり、FICO の基盤言語は Java です。Java、Python、または R は、スコアカード自動化モデル システムを構築するために現在人気のある言語です。データ量が多い場合、自動信用スコアリング システムを確立するのは容易ではなく、専門チームによる継続的なテストと更新が必要になります。Python や R はオープンソース言語であり、パッケージは定期的にアップグレードされますが、メンテナンスを行う専門チームが存在しない場合、システムは将来的に重大な問題を引き起こす可能性があります。

10. モデルのモニタリング

時間が経つと、ks、auc などのモデルの識別能力が徐々に低下し、モデルの安定性も変化します。専門のモデル監視チームが必要です。監視の結果、モデルの識別力の大幅な低下やモデルの安定性の大きな変化が示された場合、モデルを再開発し、モデルを反復する必要があります。モデル監視チームは、毎日時間通りに関連チーム、特に開発チームとビジネス チームにモデル監視レポートを電子メールで送信する必要があります。

モデル監視の ks 指標。モデル ks が 0.2 より低い場合、良い顧客と悪い顧客を区別するモデルの能力はほとんど効果がなく、モデルを再度反復する必要があります。

写真

モデルによって監視される不良金利指標、不良金利が突然上昇すると、指導者は非常に神経質になるため、大量の融資ではコストをカバーできなくなります。

写真

モデルによって監視される PSI インデックスは、PSI が 0.25 より高い場合、モデルが非常に不安定であり、再反復する必要があることを示します。

写真

要約する

ここでは、Python に基づいたクレジット スコアカード モデルの主なプロセスを紹介しますが、実際のスコアカード モデリングには多くの詳細があり、インターネット上のこれらの詳細の説明は性急すぎるか、不正確です。たとえば、変数の欠損率が 80% ~ 90% に達した場合、変数を直接削除する必要がありますか? 変数相関が 0.8 程度の場合、その相関を取り除くことができますか? 経験豊富なモデラーは、問題を 1 つの角度だけから考えるのではなく、数学理論、ビジネス分野の実際のニーズ、コンピューター テストの結果などの間のバランスを見つける必要があります。経験豊富な外科医が必ずしも教科書の理論に正確に従っているわけではないのと同じです。統計、機械学習、人工知能などの分野では多くの論争があり、完全な合意はありません。データ サイエンスの知識を継続的に最適化できるように、学習時に独立した思考スキルを維持する必要があります。

Python に基づいたクレジット スコアカード モデル - Give me some Credit をここで皆さんに紹介します。
参考資料: <Python 財務リスク管理スコアカード モデルとデータ分析マイクロプロフェッショナル コース (拡張版)>

著作権に関する声明: この記事は公式アカウント (Python リスク管理モデル) からのものであり、許可なく、盗作はありません。CC 4.0 BY-SA 著作権契約に従って、転載する場合は、元のソースリンクとこの声明を添付してください。

おすすめ

転載: blog.csdn.net/toby001111/article/details/132675911