LoginSignup
9
7
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

Kaggle参戦記:手痛い洗礼。1940位で終了。

Last updated at Posted at 2024-01-23

今日は「AIが書いた文書か、人間が書いた文書かを当てるコンペ」の最終日でした。参加者の多くが予想していた通り、大きなShake-up/Shake-downが起こっています。私はというと。。。大きなShake-downの方に入ってしまいましたー!わははは!

結局、1940位で終了。メダルの影も形も見えません。振り返ってみると、結構、序盤で良いモデルができていたのに、それを採用せず、また、後半で悪手を重ねてしまった、という感じでした。下記、私がLBスコアを上げるためにやったことと、その結果を見て内面化していった仮説に対して、PVスコアはどう変化していたか、を照らし合わせながら、答え合わせをしていきます。

仮説(1):DAIGT v2にDATGT-exのデータを統合すると精度が良くなる
⇒〇正解 
  LB:0.960 ⇒ 0.961
  PV:0.893 ⇒ 0.903

仮説(2):CatBoostに高い重みを与えるのは良くない
⇒×不正解:実はすごいゲインがあった!この時の結果を最終提出していれば・・・
  LB:0.961 ⇒ 0.951
  PV:0.893 ⇒ 0.917

仮説(3):TfIdfVectorizerのmax_featureを減らすのは効果がある
⇒〇正解
  LB:0.961 ⇒ 0.962
  PV:0.902 ⇒ 0.906

仮説(4):人間の文章データの重複は効果がある
⇒〇正解
  LB:0.961 ⇒ 0.963
  PV:0.902 ⇒ 0.904

仮説(5):LightGBMを省いても精度は向上する
⇒×不正解。これはかなり致命的なミスだった。
  LB:0.961 ⇒ 0.963
  PV:0.902 ⇒ 0.890

仮説(6):TfIdfVectorizerのn-gram rangeを長い方に伸ばすのは良いこと
⇒×不正解
  LB:0.963 ⇒ 0.967
  PV:0.890 ⇒ 0.886

仮説(7):再びCatBoostに重みを与えても良くならない
⇒×不正解:実はCatBoostにすごいご利益があった。。。
  LB:0.967 ⇒ 0.967
  PV:0.886 ⇒ 0.905

仮説(8):ノイズデータの重複は効果がある
⇒〇正解:
  LB:0.972 ⇒ 0.973
  PV:0.883 ⇒ 0.887

こうして振り返ってみると、序盤でそこそこ優秀なモデルが作れていたのに、そこを素通りしてしまい、後半は悪い仮説に悪い仮説を重ねた結果、PVスコアをどんどん下げていっていた、という感じですね。特に、データ拡張まわりの仮説はだいたい当たっていたのですが、分類器の選択を完全に見誤っていた感じです。こうなった原因としては、「データ拡張で精度が向上できる」⇒データを増やしたい⇒メモリオーバーフローになる⇒重い分類器を軽い分類器に入れ替えてみる⇒LBスコアが上がった(ひと安心)⇒またデータを増やす⇒・・・。という思考ループにはまってしまっていたからでした。

今回の教訓は下記の通りです

  • CatBoost、LightGBMは、それなりに性能の裏付けがある。安易に外そうとするな。
  • 「最後にたどりついた最高LB、最高AUCは努力の結晶ではない」それは「悪い仮説に悪い仮説を積み重ねただけの代物かもしれない」。最終提出結果には、先入観なく作っていた序盤の単純なベストモデルも入れておけ。

また、PVスコアの上位層の手法を見ていると、みんな結構、データの整備に時間と力をかけていたことが分かりました。やはり、データの質と量が分類器のロバスト性を高めるのだと再認識しています。過学習の可能性を放置せず、しっかり、手元のデータのトピックを分類して、偏りをなくす工夫をしておくべきでした。

このように、今回は残念な結果に終わりましたが、これからは「Kaggleで1900位以上転落した男」として、別のコンペでも引き続き頑張ります。

9
7
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
9
7