Slide 1

Slide 1 text

関東kaggler会 2024/8/3 LT4: How are you handling High Score Public Notebook? takaito

Slide 2

Slide 2 text

1 大学の専攻: 自然言語処理 お仕事: 資産運用会社のクオンツアナリスト Kaggle: Competitions Master Kaggle歴: 4年目に突入 (2021年~) データ分析スキルの向上を目的に様々なコンペに参加 @takaito0423 簡単な自己紹介

Slide 3

Slide 3 text

2 【第1回】 関東kaggler会でのLT スコアが改善せず,気持ちがネガティブになったときには以下を思い出してください! ① バイアスなどをきちんと理解する ② 相対的な順位だけでなく,自身の成長にフォーカスする ③ チームを組んで参加する ④ 無理のないペースで取り組む 参加者同士で切磋琢磨しながら自己成長を続けていくという経過を楽しむことを忘れずに! 努力を続けていれば,きっといつかは上位争いに参加できるようになると思います!! 気楽にソロ参加でも,ワイワイとチーム参加でもいいので, とにかく楽しんで継続していくことが大事だと思います!!

Slide 4

Slide 4 text

3 Kaggle悲しいときあるある ✔ notebookの提出が通らず,エラーが出続けるとき ✔ 渾身のアイデア(特徴量など)がまったくスコア改善に寄与しなかったとき ✔ 手元のCVスコアは良かったが,提出したLBスコアが最悪なとき ✔ 時間をかけたコンペでLBの順位は良かったが,最終順位が大幅に悪かったとき ✔ あと一歩のところでソロ金を逃したとき etc...

Slide 5

Slide 5 text

4 Kaggle悲しいときあるある ✔ 深夜に取り組んで良いLBスコアが出たが, ✔ 次の日の仕事終わりに順位を見たら,ハイスコアのNotebookにより,100桁台に...

Slide 6

Slide 6 text

5 本日のテーマ High Score Public Notebookとどのように向き合い,扱っていくべきか?

Slide 7

Slide 7 text

6 High Score Public Notebookとは? ✔ Public(LB) Scoreが高く,コピーするだけで銅圏~銀圏に届くような公開Notebook ✔ 状況次第では一瞬で銀圏から追い出されることも... ✔ 初学者~中級者からすると,1からコードを書く必要がなく大変助かる場合も多い ✔ 逆に,公開Notebookを超えることができずに苦労することも ✔ 自然言語処理系のコンペに多いように感じる (個人的な主観)

Slide 8

Slide 8 text

7 ソロ参加とチーム参加での活用の違い (個人的な主観) ソロ参加 ✔ 自作したいくつかのモデルは似た傾向になりがちで,場合によっては数も多くないため,積極的に活用が良い? チーム参加 ✔ チームマージしたとき,各自が同じものをベースにしているとアンサンブルが効きにくくなるため,自作が良い?

Slide 9

Slide 9 text

8 実力や経験値による活用の傾向の違い (個人的な主観) 参考にしたり,しなかったり. 基本的には自作. Folk(コピー)して,ちょっとした改善を加えながら, 最終的なサブを作成していく. Notebookやコンペの傾向の調査. 自身のサブとアンサンブル. ベースにしつつ,がっつり独自の変更を加えていく. (ここを詳しく取り上げていく)

Slide 10

Slide 10 text

9 Notebookの活用 (強い人たちの例) ✔ Makotuさん @makotu12082 ✔ ゆめねこさん @yume_neko92 【第1回】関東kaggler会資料より引用: https://connpass.com/event/290248/

Slide 11

Slide 11 text

10 Notebookの活用例 (一般的な例) 自身のサブとアンサンブル ✔ あくまで多様性を持たせるための予測モデルに過ぎず,別途自作したものと最後に混ぜる ✔ 使用する公開notebookは,前処理から推論までの速度を改善することで,アドバンテージを得られる ベースにしてがっつり独自の変更を加えていく ✔ ベースが同じであることから,銀圏までは駆け上がれることも多いが,金圏まで抜けるのはなかなか難しい印象 ~理想~ 高いスコア 汎用性の高いnotebook ~現実~ 微妙なスコア よくわからない混沌としたnotebook

Slide 12

Slide 12 text

11 Public Notebookが倒せない 立ちはだかるHigh Score Public Notebook ✔ 諦めずに様々な手法に挑戦するけど... ✔ モデルのハイパーパラメータや閾値の最適化に挑戦するけど... どう向き合うか? ✔ (心の平安を保つために) アンサンブルだけは最後まで取っておく ✔ 斜に構える ✔ 常に疑問を持って何回も分析を行う!!

Slide 13

Slide 13 text

12 斜に構える 偶然良いスコアが出ている ✔ 数百~数千の参加者が実験を行っており, その中で偶然上振れしたものが公開されている可能性もある Public Scoreに対して過剰にフィッティングした処理 ✔ Public Scoreを参考にした閾値やルールベースなどの後処理により, 過剰なフィッティングになっている可能性もある over fittingしてるだけ

Slide 14

Slide 14 text

13 徹底的に分析する クロスバリデーション(CV)での評価を丁寧に! ✔ 適切なCV戦略の選択する ✔ 学習データの一部を切り分けておき,テストデータに見立てて評価を行う ex) データを5分割し4つのデータでCV,残り一つをLBに見立ててスコアを確認する ✔ seedやデータ分割を変更して複数回検証を行う その検証結果から,偶然高いのか,notebookとして優れているのか判断する ✔ ルールベースによる後処理はCVでもover fittingする可能性があるので注意が必要(テキスト系のコンペなど) https://upura.hatenablog.com/entry/2018/12/04/224436 ディスカッションや上位常連のLBの順位など, 使える情報は何でも使って,確信に変えていく!!

Slide 15

Slide 15 text

14 実例: ICR - Identifying Age-Related Conditions ✔ ある人が3つの病状のいずれかに罹患(りかん)しているかどうかを予測するコンペ ✔ 評価関数はbalanced logarithmic loss ✔ テストデータの件数などの問題もあり,あまりいいコンペではなかったが,学ぶことはいろいろとあった ✔ ある閾値を下回った予測値を0にする後処理を追加することでLB スコアが改善することを示すNotebookが公開され,その後も閾値 やモデル数を変えただけのHigh Score Notebookが公開された ✔ 手元で検証を行えばわかることだが,評価指標の性質から,この 後処理に誤分類がひとつでも入ると大幅にスコアが悪化する ✔ むしろ0.1以下は0.1にする処理を入れた方がスコアは安定した

Slide 16

Slide 16 text

15 Shake upからしか得ることのできない効用がある ✔ Public Scoreが高くなくても逆転できる可能性がある ✔ Shakeで金圏に入る方法 最後まで諦めない!

Slide 17

Slide 17 text

16 まとめ ✔ High Score Public Notebookに関して,以下の3点を紹介 1. 活用方法,2. 検証方法,3. 向き合い方 ✔ High Score Public Notebookに惑わされることのない分析力とメンタルを身に着けることが大切 ✔ 大事なことは,新しい知識を学ぶ姿勢ととにかく諦めずに挑戦し続けること,そして楽しむこと みんなでkaggleを楽しんで行きましょう!!