追試 kaggle Home Credit Default Risk
コンペ上級者がどんな考え方でコンペを進めているのかを調べる目的で過去のコンペに挑戦。
ハウジングローンの信用評価の2値分類。
特徴、提供されたテーブルの多さ。
メインキーのSK_ID_CURRの下にSK_ID_BUEAU,SK_ID_PREVという別のキーがあり、それらをSK_ID_CURRにどううまくまとめて紐づけるかがポイント。
何事もステップを踏んでいかないと道に迷って(=どのモデルが良いかわからなる。)大切な時間を無駄にすることに最近気づいたので以下の順番で一歩ずつ進めた。
applocation_train.csvのデータのみで追加の特徴量も作成せず。LightGBMの標準条件で評価した。スコア(ベースライン)は0.74113、これ以下の値であればそもそもモデルを作成する必要なしのベースとなる指標。この値を侮ってはいけません。いつもそこそこ良い値です。
過去にこれをやらずにこ特徴量をこねくり回したモデルを作ってあとでベースラインと比較すると負けてた経験が多数。
あとは順繰りに独断と偏見で重要度が高いと思われるテーブルを処理して追加し、そのたびごとにスコアを確認。基本の処理は数字関係は基本統計量、必要に応じて四則計算、カテゴリーは横持ちを縦持ちに変換して使用。ここまででスコアは0.77702。
特徴量の検討は一旦休止して、OptunaとCVでスコアアップを実施して0.7837、同じ特長量を使用してXGBoostでOptunaとCVしたところ0.78637までアップ。
本当はここからもう一度、特徴量の検討を行い上位の仲間入りを目指すのが本番なんでしょうが、大変なエネルギーが必要になるので、これは追試なので上位人のソリューションを研究するフェーズに入ります。
今回のトップスコアは0.80570、ブロンズ獲得するため最低でも0.79449のスコアが必要です。スコアの差は0.00812、大きいと感じるか小さいと感じるかは人それぞれか。
ソリューションを見て感じたのは特徴量の最適化のみでスコアを0.8まで上げていること、これまではアンサブルやCVでもっとスコアが上がるイメージだったのですがそうじゃないことがわかって少しびっくり。
特徴量をどのように組み合わせたり、作り出したりするかが基本の基だということか。今回はデータから近似値ですが利子率を計算できたようでこれに気づいた人は大きくスコアをアップできたようです。近い特徴量は作っていたのですが、明確に利子率を計算することをわかった人間となんとなく作った人間の差でしょうか。業務を知っていることはやはり大きなメリットになるようです。
ただ、業務を知らなくても知っている人がDiscussionに上げてくれるところがkaggleのすごいところでもあります。情報は頻繁にチェックする必要ありです。
特徴量の絞り込みはBOOKで紹介した以下の書籍の中にいくつか紹介されていたのでおいおい試してみます。