trainデータはサンプルサイズ100%にてモデル構築。
testデータは外部テストとしてDataRobotへ投入。
testデータは「予測タブ→予測を作成」「解釈タブ→予測の説明」から其々出力のPredictionは同値でした。しかし、trainデータについては両者の結果が異なります。
trainデータにおける「予測」と「予測の説明」のPredictionの違いはどのように解釈すれば良いのでしょうか。
また、本件貸し倒れを予測するモデルを作成しているのですが、「予測」のPredictionに基づき、実績デフォルト率と比較すると、train、testともに実績値よりも想定デフォルト率が低い結果となりました(実績値2.6%のところ想定値2.0%水準)。乖離が気になるのですが、ありのままを捉えるべきか、乖離を改善した方が良い場合は改善方法をご教示いただきたいです。
解決済! 解決策の投稿を見る。
trainデータにおける「予測」と「予測の説明」のPredictionの違いをご説明する前に、まずは「予測の説明」で出力されるスコアについてご説明したいと思います。
「予測の説明」グラフ横軸をご確認いただくと「検定の予測」と記載されているかと思います。つまり「予測の説明」で出力される予測値は「交差検定の最初の分割(Fold)」で作成されたモデルによる予測値になります。(下図参照)
一方でTrainデータにおける「予測」は出力された予測結果を確認すると「Cross-Validation Prediction」と記載されておりませんでしょうか?(下図参照)
つまりtrainデータにおける「予測」と「予測の説明」のPredictionの違いは
「予測」:交差検定で各Foldに割り振られた後に算出された結果
「予測の説明」:交差検定の最初の分割(Fold)で算出された結果
となり、予測結果を算出する学習データが厳密には一致していないため結果が微妙に異なってしまうのです。
なお、今回の100%モデルを用いられておりますので、「検定」「CV」の存在に少し違和感を感じるかもしれませんが、100%モデルではハイパーパラメータをそのまま生かした上で、改めて80%モデルを構築し、交差検定を実施しています。そのために結果が少し異なることもイメージできるかと思います。
(詳しくはこちらのご質問をご参照ください。)
また、後半の「train、testともに実績値よりも想定デフォルト率が低い結果」となった解釈についてですが、予実を比較した際に0.6%のデフォルト率下振れが気になるのであれば
①業務適用視点で許容できる下振れなのか整理する(=ありのまま捉えるべきかを業務視点で判断する)
②(許容できないのであれば)その要因を整理すること
上記①②をご検討されてみてはいかがでしょうか。
特に②の要因整理ですがDataRobotの機能を活用しながら「2-1)全体を把握」した後に「2-2)下側に外してしまっている領域を探索」、「2-3)その領域に見られる傾向を整理する」を行ってみると良いかもしれません。
2-1)はROC曲線・混合行列を活用しながらモデルの精度・陽性的中率と真陽性率のバランス(=過検知/見逃しどちらの傾向が強いのか等)を確認することが有効です。
2-2)はリフトチャート・特徴量毎の作用などが有用です。予実が大きく差のある領域をまずは見つけてみましょう。(もちろん予測の説明も有効です)
2-3)は個別療法にはなりますが、外しやすい傾向にあるエリアに見受けられるデータの傾向から新たな特徴量を生成する/データを加工する/外しやすい集団特有のモデルを作成する…など打ち手は様々あります。
いずれにしても、まずはビジネス要件を整理し、モデル結果の全体傾向を把握されてみることがよろしいかと思われます。
丁寧なご回答大変ありがとうございます。
考え方が整理できました。