与信シュミレーション(LGBM,ランダムフォレスト、ロジスティック回帰)

#与信シュミレーションの目的
ユーザー情報からユーザーの支払い遅延確率を算出し、支払い遅延確率に応じた利用可能額を設定。
利用可能額の見直しにてデフォルトによる損失を小さくし、利益の改善を図る。

#今回実施したこと
・EDA
・特徴量選択
・データ加工
・モデル構築
・モデル評価
・スコアリング、利用可能額の設定
・グラフの表示

#EDA
現行の利益、損失、最終利益を算出。
各カラムのデータ量および目的変数(デフォルトフラグ)との関係性を算出。
データの特徴を把握し、特徴量選択、データ加工等に活用。

#特徴量選択
##目的
・変数を変数を少なくすることで解釈性をあげる
・計算コストを下げて、学習時間を短縮する
・過学習を避けて汎用性を向上させる
・高次元データによって、パフォーマンスが下がることを防ぐ

##試した手法
①filter method
機械学習モデルを使用せずにデータセットのみで完結する手法であり、データの性質に依存。
データの分散や相関関係にて特徴量を選択。

②wrapper method
機械学習モデルを使用して特徴量の組み合わせを評価する手法。filter methodでは分からなかった変数間の関係を探し出し、それぞれのモデルに最適な特徴量の組み合わせを探索可能。

##単一カラムでの精度評価
単一カラムにて目的変数を予測した際の精度にて各カラムを評価。

#データ加工
##アンダーサンプリング
少数はのデータに合うように、多数派データをランダムに抽出する方法。
不均衡データは特段の工夫をせずにモデリングをすると、少数派の分類精度の低いモデルとなりやすい。
デフォルトフラグは不均衡データであり、予測するべきデフォルトユーザーは非常に少数。
*反省・・・多数派データの特徴量の分布が崩れない工夫(クラスタリングをしてからの抽出)、オーバーサンプリングも試すべきであった

##クラスタリング
クラスタリングにてユーザー属性を抽出。
追加の特徴量として利用。

##特徴量作成、カテゴリカル変数の集約
データの特徴をより捉えるため特徴量作成、カテゴリカル変数の集約処理を実施。

#モデル構築
##LightGBM
###LightGBMの仕組み
1.「決定木」を基にしたアルゴリズム

2.弱学習器を統合する「アンサンブル学習」

3.「勾配ブースティング」を応用した計算
　①説明変数から目的変数（強度）を学習させ、予測値を出す
　②予測値と正答値から誤差を計算
　③説明変数と誤差を学習させ、誤差予測値を出す
　④予測値と誤差予測値を足して、誤差考慮した予測値を出す
　⑤誤差考慮した予測値と誤差を学習させ、誤差予測値を出す
　⑥繰り返す(④、⑤)。

４.Leaf-wiseな訓練過程
 Level-wise・・・「層ごとに一括で」分岐を進める。

 Leaf-wise・・・「分岐させるべき葉」を優先的に分岐。

5.訓練データのヒストグラム化
  高速でモデル構築を進めることが可能。

###LightGBMの特徴
1. 欠損値をそのまま扱える
2. カテゴリ変数の指定ができる
3. 特徴量のスケーリングが不要
4. feature importanceが確認できる
5. 精度が出やすく最終的なモデルとして残る可能性が高い
6. 比較的大きいデータも高速に扱える

##ランダムフォレスト
###ランダムフォレストの仕組み
決定木で多数決を取るアンサンブル学習(バギング)。
　①訓練データからN個のブーストトラップデータ集合を作成。
　ブーストトラップデータ・・・セットから重複を許してn個のデータをサンプリングする方法。
　②このデータ集合を用いてN個の決定木を生成。この時、p個の特徴量からm個の特徴量をランダムに選ぶ。
　③分類の場合はN個の決定木の多数決を、回帰の場合はN個の決定木の予測の平均を最終的な予測とする。

###ランダムフォレストの特徴
1.特徴量のスケーリングが不要
2.考慮するパラメータが少ない
3.並列化が容易
4.どの特徴量が重要かを知ることができる
5.複雑なデータではSVMなどの分類手法に比べて汎化性能が下がる


##ロジスティック回帰
###ロジスティック回帰の仕組み
線形回帰の数式と同様に、データx（特徴量からなるベクトル）に対して重みベクトルw（w1, w2, …wm）をかけてバイアスw0を加えたyという量を計算。

y = w0 × x0　+　w1 × x1　+　w2 × x2　+・・・+　wm × xm

線形回帰と異なり、「シグモイド関数」を用いて出力の範囲を0〜１にする。

####正則化
過学習を防いで汎化性能（未知のデータへの対応能力）を高めるためのテクニック。
モデルに「正則化項」というものを付けることでモデルの形が複雑になりすぎないように調整。
ロジスティック回帰における正則化の強度を決定するパラメータはCと呼ばれ、Cが大きくなると正則化は弱くなる。
つまり、パラメータCを大きくするとロジスティック回帰は訓練データに対しての適合度を上げようとし（個々のデータポイントを正確にクラス分類することを重視するようになる）、逆にパラメータCを小さくすると係数ベクトルwを０に近づけることを重視するようになる（適合度を下げて大雑把にデータの傾向をつかもうとする）。

#####L1、L2正則化
機械学習モデルは損失関数を最小にするパラメータを学習。
一方で、L1、L2正則化を用いた機械学習モデルは損失関数とパラメータの値の和を最小にするパラメータを学習。
L1正則化はパラメータの絶対値の和を、L2正則化はパラメータの二乗和を罰則項として用いる。

###ロジスティック回帰の特徴
各変数の変化に対する出力値の変化を説明しやすい。


##アンサンブル学習
###アンサンブル学習の種類
####バギング
並列的に弱学習器を用いてそれぞれのモデルの総合的な結果を用いる手法。
回帰だったら平均値、分類だったら多数決。
バリアンスをおさえる。
今回はバギングを使用。

####ブースティング
バギングが並列であるのに対し、ブースティングは直列的に弱学習器を用いる手法。
バイアスを低くすることが可能。

*バイアス・・・予測値と実測値の差
*バリアンス・・・予測値のばらつき
両者はトレードオフの関係。

####スタッキング
新たな特徴量を作る手法。
①いくつかのFold（グループ）にデータを分けて、それぞれを各モデルで予測（いわゆるクロスバリデーションを複数モデルで実施）
②それぞれの予測値を新たな特徴量とする
③繰り返して最終アウトプット算出

##試したこと
optuna、グリッドサーチを利用したパラメーターチューニング
クロスバリデーションでの汎化性能評価

#モデル評価
不均衡データのためAUCにて評価。
##AUC（Area Under the Curve）
ROC曲線の曲線より下の部分の面積。
0から1までの値をとり、値が1に近いほど判別能が高いことを示す。
判別能がランダムであるとき、AUC = 0.5。

##ROC曲線
縦軸に真陽性率（=TPF）、横軸に偽陽性率（=FPF）をとった平面にプロットして結んだ曲線。

##偽陽性率
正解がクラスbのデータをクラスaと識別してしまった割合

##真陽性率
正解がクラスaのデータをクラスaと識別できた割合

#スコアリング、利用可能額の設定
予測した支払い遅延確率を元にスコアを算出。
正規化にてスコアの分布を修正。
スコアとシグモイド関数を利用して利用可能額を設定。

#モデルの表示
新たに設定した利用可能額と現行の設定の比較をグラフにて可視化。

#githubリンク
リンク貼り付け予定