Rの【woeBinning】パッケージ がとても便利
分類問題をロジスティック回帰で予測しようと思ったらこのパッケージが便利そうです。
説明変数をWOE(Weight ou Evidence)ベースでビン化してIV(Information Value)
を算出してくれます。
「WOE」というよりクレジットスコアリングモデルの説明ですが、以下が参考になると思います。
https://www.worldprogramming.com/jp/blog/credit_scoring_pt5
説明変数のビン化(クラス化)についてはやり方がたくさんあるのでしょうが、春に受けたSASのクレジットリスクセミナーでもWOEについて時間を割いて解説されていました。
PythonでもWOEベースのビン化パッケージがあるのですが、Rもpythonも日本語で解説しているページがあまり見当たらないので紹介しておきます。
組み込みのGerman Creditデータセットを使用します。
Good/Badで結果および20の変数がついた1000行21列のデータフレームです。
実行すると、IVベースでの変数ランキングと、各変数ごとの変数プロットが出てきます。
変数分出てくるので、個別変数としてはduration in monthだけ載せておきます。
このBinning関数には渡せるパラメーターまだがいくつかあって、
stop.limit:ビン化により減少するIVの減少幅にリミットを設ける
min.perc.total:各ビンに入る目的変数の数の割合に下限を設ける
など柔軟にチューニングできそうです。
その他はHelpをご参照ください。
duration in monthは以下の通りビン化されています。
このdurationですが、binning関数にかける前のヒストグラムはこんな感じです。
近々、KaggleでみつけたHumanResourceAnalytics(会社をやめる人を予測する)データセットで、このビン化モジュールで前処理、ロジスティック回帰で予測を実施したいと思います。
その際に詳しく解説します。