Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ド文系だった私が、 KaggleのNCAAコンペでソロ金取れるまで

ド文系だった私が、 KaggleのNCAAコンペでソロ金取れるまで

関西Kaggler 交流会 in Osaka 2025#2の登壇資料
https://kansaikaggler.connpass.com/event/341899/

Avatar for wakama1994

wakama1994

July 11, 2025
Tweet

More Decks by wakama1994

Other Decks in Science

Transcript

  1. 自己紹介 primeNumber.Inc (2023.10-): ダッシュボード構築 , データ基盤構築 , DataOps, データカタログ Takumu

    Wakamatsu 若松 拓夢  その前 ウェザーニューズ (2020-2023): データサイエンス , 気候変動のサービス開発 その前 北海道大学 法学部 → 同大学院 農学院 (2014-2020) : 学部でデータ分析を知り、理系の道へ • 普段の活動 : DS協会コンペ部 ◦ DS協会が主催するデータサイエンティスト養成講座の修了生が入部可能 ▪ kaggle masterの講師の方と、いつも参加するメンバー 6-7人 (Kaggle Expertが3人) ◦ チーム組んでコンペ出場や、月次定例でコンぺの解法や DS周りの知見共有 コンペ暦5年 : 国内コンペ3年弱, kaggle2年(TEAM4, SOLO2)
  2. 発表の構成 • 第1部 (約10分) ◦ 2025年3月に行われたNCAAコンペでソロ金が取れた話をします! ▪ 直前に会社の人と出場した別のコンぺの教訓が生きました • 第2部

    (約5分) ◦ これからメダルを取っていきたい方向けに、私のこれまでの経験を話します ▪ Kaggle歴は浅いものの、これまでの積み重ねが多く関係していると改めて実感 ※第1部の内容は、 2025年4月開催の「湘南Kaggler会」の内容を一部改変したもの
  3. 評価指標C-indexを算出するためのプロセス 1. efs(Event-free survival) • カテゴリカル変数 • 値の意味: イベントが発生または打ち切りを指す ▪

    0: 治療が必要な状態が発生せず、無イベント生存を達成したケース ▪ 1: 治療が必要なイベント(再発、進行、死亡など)が発生したケース 2. efs_time(Time to event-free survival) • 連続変数 • 値の意味:無イベント生存までの時間(月単位) 3. 1と2を組み合わせて、予測対象 yを作成 • 生存時間解析に近い考え方
  4. 私のアプローチ • 右のNotebookをベースラインとした ◦ 生存関数オプション(カンプラマイヤー関数と CoX比例ハザード関数)をモデルアンサンブルした モ デル • ベースラインに対し、特徴量作成に注力

    ◦ efs_timeの平均値 を変数の項目ごとに算出し、カラムとして追加 ◦ efsの0/1をカウント し、1が多い場合は0が多い場合は0とし、カラムを追加 ▪ 35あるカテゴリ変数と、 23の連続値ごとで算出する • 各作成した特徴量に対し、5つのモデルで異なる特徴量加工を 実施 a. カンプラマイヤー関数 i. CatBoost/LightGBM/XGBoost b. Cox比例ハザード関数 i. CatBoost/XGBoost
  5. しくじりポイント 01 LBへの過小な期待 Testデータ3つだったこともあり、手元の CVだけを あげれば良いと勝手に判断 理由: 過去に出た、Kaggle ICR(同じ医療コンペ)も TESTデータが数個で、少なく手元の

    CVだけを信じ、 shakeupして、銀メダルも狙えたという謎根拠から .... 今回: 合成データという特性上、PVととprivate test はある程度は相関する可能性も高い 
 (とコンペ終了後にわかる) NN系の公開コードLB: 0.6904(最終0.6904) CVって俺らの方がよ くない?
  6. しくじりポイント 02 Discussionの読みこみ不足 • コンペの中盤でDiscussion で特徴量 加工が効かない or 議論されてないこと がわかる

    ◦ そもそもCVを信じまくっていたので、 ほぼスルー • 前頁で記載したNotebookは全く特徴 量加工してないものだった..... • DS協会コンペ部チームはこの議論を しっかり理解してた......涙 https://www.kaggle.com/competitions/equity-post-HCT-survival-predictions/discussion/561842
  7. NCAAでの戦略 -2つに絞る- 1. 過去NCAAに参加したことのあるTierのNotebookをベースライン a. 過去のトーナメントのシード情報・シード情報を予測したもの・ ELO rate を特徴量に入れる 2.

    ベースラインに、「ブライアスコアに基づく最適リスク戦略」を追加 https://www.kaggle.com/code/kaito510/updated-goto-conversion-winning-solution/notebook の一部抜粋 https://www.kaggle.com/code/kaito510/goto-conversion-winning-solution をGoogle自動翻訳 https://www.kaggle.com/code/raddar/vilnius-ncaaを一部抜粋・改変 NotebookのAUC情報と経年比較 • Seed AUC: 実際の勝敗と、シード情報と のスコア • Quality AUC:実際の勝敗と、シード情報 を予測したものスコア
  8. おまけ NCAAの賞金受賞までの道のり • 7位は入賞の対象だったため、Winner’s Information Gatheringの提出が必要 ◦ アーキテクチャ、前処理、損失関数、トレーニングの詳細、ハイパーパラメータの詳細な 説明を、2週間以内に事務局に提出 •

    公開Notebookを組み合わせた解法のため、LLMを駆使し読み解きを実施 ◦ 1週間で理解し、提出したものは無事に受領されました! ◦ 7th place solution 🥇 : The very simple method ! に解法とNotebookを記載 • 無事に賞金を獲得できたが、日本口座への振り込みにかなり時間を要した ....
  9. 社会人で始めたデータ分析コンペ • SIGNATEと出会い、データ分析コンペを始める! ◦ データサイエンスの基礎固めとして、コンペ形式の研修 AI Quest2020に参加 ▪ 公開コードやDiscussionの大切さを学ぶ ▪

    上記2つを対象としたPrize(コミュニティ貢献賞)を受賞し、コンペで自分を高める面 白さを実感 • データサイエンティスト養成講座で、チームで出る楽しさを知る! ◦ 養成講座が、チームで SIGNATEの練習問題コンペを競うもの ▪ 2回コンペがあり、どちらも見事優勝 ◦ 修了生が対象のコンペ部で、継続してチームを組む楽しさを覚える ▪ 月1の定例で、データサイエンスの知見、開催中のコンペの共有がある ▪ その中で、SIGNATEで銀1銅1 、Kaggleで銀1を奪取!
  10. 短期間でやるには①目標を定め、継続的にやる • その目標が達成したら、自分はどうなっているか?を想像する ◦ 例えば、Kaggle Expertになるために、今足りないのはメダル何枚で ...そのためにはチー ムで組んで解法共有できる環境がいいな ... •

    その中でモチベーションを維持する方法を模索し、継続的に取り組む ◦ 例えば、気心知れてる仲間で Kaggleに出て、メダルを目指す ◦ 周りにいない場合は、モチベーションを維持してくれる組織や仲間を探す ◦ 1人が好きな場合は、時間を決めて、家以外の場所で取り組む ...など