0
1

Kaggle Playground Series 2024年7月 上位解法まとめ

Posted at

はじめに

Kaggleでは毎月、テーブル形式のデータを題材とした機械学習のコンテストKaggle Playground Seriesが開催されています。
今回は2024年7月に開催されたBinary Classification of Insurance Cross Sellingの上位チームの解法をまとめていきます。
Kaggle上位陣が使う最先端の手法を知りたい方や、テーブルデータのコンペで精度を上げたい方はもちろん、これからデータサイエンスを学びたい初心者の方もぜひ読んでいってください!

コンペ概要

  • 保険会社の保有する顧客データから、保険の成約率を予測する二値分類
  • データは1000万件もの合成データ
  • 評価指標は予測された確率から計算されるAUC
  • 開催期間1か月の一般部門の他に、制限時間24hのAutoML Grand Prixも開催

上位チームの解法

  • AutoML Grand Prixの制限時間内では、CatBoostの単体モデルが高評価を獲得し、最終結果ではアンサンブルモデルが上位に入りました。ニューラルネットワーク、特にディープラーニング系のモデル、AutoMLの一種LightAutoML(以降LAMA)も上位に入るために重要な役割を果たしました。
  • 多くの解法で、AutoML Grand Prix 1位のシンプルな特徴量が採用されました。これには、Previously_Insuredと他の特徴量の組み合わせや、数値特徴量をカテゴリ変数として扱う手法が含まれます。
  • 合成データの元となったデータセットの使用や、データの癖を利用した特徴量エンジニアリングが、スコア改善に貢献しています。

AutoML Grand Prix(制限時間24h)

順位 概要
1位 単体のCatBoost。この解法で使われた特徴量が他でもよくつかわれている。
2位 こちらも単体のCatBoost。合成データの元になったデータセットを追加で使用。特徴量については手作業で作成したものを検討している。
3位 LAMAを使用した多数のモデルのアンサンブル。

最終結果

順位 概要
1位 78ものモデルを組み合わせたアンサンブル。個別のモデルも手作業で調整したLightGBM、LAMA、公開ノートブックの出力など多様なものを使っている。
2位 単体のCatBoostのみ。他のモデルの検討についてはノートブックを参照。
3位 LAMAを利用した38モデルのスタッキング。個別のモデルにはCatBoost, Keras FM, Keras Embedding, xLearn FFM, LAMA ResNetを使用。
6位 CatBoost, LightGBM, XGBoost, ニューラルネットワーク, ロジスティック回帰のアンサンブル。特徴量はAutoMLGrandPrixの1位解法と同じものを使用。
8位 ハイパーパラメータ調整したCatBoost。k = 10のStratifiedKFfoldで交差検証。
9位 CatBoost, LightGBM, ニューラルネットワーク, XGBoost, ランダムフォレストから構成される24モデルのアンサンブル。

外部データの利用

このコンペの合成データはこちらのデータから作られています。このため、このデータを追加しています。(AutoML Gland Prix 2位、最終1位、6位、9位)

また、合成データの中で元データと同じ特徴量を持つ行では、Targetの値が反転するという癖があります。このため、これを利用して予測結果を書き換えることでスコアが改善します。

特徴量エンジニアリング

ほとのどの解法では、AutoML Grand Prix 1位解法で採用された非常にシンプルな特徴量が使われていました。

  • Previously_Insuredとの組み合わせた特徴量4種
  • 数値特徴量もカテゴリー変数として扱う

他には以下のような特徴量が使われていました。

  • ビニング、集約特徴量、複数カテゴリの組み合わせなど28種(AutoML Grand Prix 2位)
  • ニューラルネットワークによる埋め込み(AutoML Grand Prix 3位、最終3位)

使用されたモデル

時間に制約があるAutoML Grand Prixでは単体のCatBoost、最終結果では多数のモデルをアンサンブルしたものが高いスコアを達成しました。アンサンブルを採用したチームでは、AutoMLのLAMAが多く採用されています。
個別のモデルについては、ニューラルネットワークのモデルが高いスコアを達成するのに重要になります。特に、Kerasで構築した比較的単純なモデルよりも、DenseLightやTabResnetのようなディープラーニング系のモデルの方が上位に行くほど採用される傾向にありました。

アンサンブルとAutoML(LAMA)

順位 アンサンブル LAMA
AutoML Grand Prix 1位 無し
AutoML Grand Prix 2位 無し
AutoML Grand Prix 3位 加重平均
最終1位 スタッキング(XGBoost)
最終2位 無し
最終3位 スタッキング(DenseLight)
最終6位 スタッキング(Scikit-learn, StackingClassifier)
最終8位 無し
最終9位 加重平均(ヒルクライム)

ツリー系と線形回帰

順位 CatBoost LightGBM XGBoost ランダムフォレスト ロジスティック回帰
AutoML Grand Prix 1位
AutoML Grand Prix 2位
AutoML Grand Prix 3位
最終1位
最終2位
最終3位
最終6位
最終8位
最終9位

ニューラルネットワーク

順位 NN NN(FM) NN(enbedding)
AutoML Grand Prix 1位
AutoML Grand Prix 2位
AutoML Grand Prix 3位
最終1位
最終2位
最終3位
最終6位
最終8位
最終9位

ディープラーニング

順位 DenseLight Tab-Resnet FT-Transformer Autoint Tab-Transformer xLearn FFM
AutoML Grand Prix 1位
AutoML Grand Prix 2位
AutoML Grand Prix 3位
最終1位
最終2位
最終3位
最終6位
最終8位
最終9位

リンク

AutoML Grand Prix(制限時間24h)

順位 リンク
1位 https://www.kaggle.com/competitions/playground-series-s4e7/discussion/516475
2位 https://www.kaggle.com/competitions/playground-series-s4e7/discussion/517112
3位 https://www.kaggle.com/competitions/playground-series-s4e7/discussion/516860

最終順位

順位 リンク
1位 https://www.kaggle.com/competitions/playground-series-s4e7/discussion/523404
2位 https://www.kaggle.com/competitions/playground-series-s4e7/discussion/523489
3位 https://www.kaggle.com/competitions/playground-series-s4e7/discussion/523661
6位 https://www.kaggle.com/competitions/playground-series-s4e7/discussion/523484
8位 https://www.kaggle.com/competitions/playground-series-s4e7/discussion/523486
9位 https://www.kaggle.com/competitions/playground-series-s4e7/discussion/523403

感想

今回、Kaggleの上位解法を初めてじっくりと分析してみて、AutoMLやディープラーニング手法の利用がこれほど進んでいることに大変驚かされました。Kaggleで勝つデータ分析の技術から、ここまでの進化があるとは予想していませんでした。

今後は、コンペティションで紹介されている上位解法を単に取り上げるだけでなく、最新の手法やその背景にある技術についても深掘りして解説していきたいと思います。皆さんと共に、テーブルデータの領域での新たな潮流を学び、共有していければ幸いです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1