KaggleMasterになるまでを振り返る

8.6K Views

August 23, 24

スライド概要

【JDLA後援】 DL/ML CAMP by株式会社松尾研究所にて発表

https://connpass.com/event/327400/

profile-image

株式会社松尾研究所のスライドを共有します

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

DL/ML CAMP by 株式会社松尾研究所 「Kaggle Master」になるまでを振り返る 田村 初(Hajime Tamura) 2024/8/22

2.

「Kaggle Master」になるまでを振り返る 自己紹介 ◼名前 田村 初(Hajime Tamura) Kaggle @thajime X(旧Twitter) @thajime_ds ◼仕事内容 アプリケーションエンジニア / 営業 / 企画 / データサイエンティスト ◼Kaggleの戦績 金1 銀2 銅6 (結果としていずれもソロ参加で獲得) 2024年7月 Kaggle Masterになりました Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 1

3.

1 データ分析コンペとの出会い 2 ShiggleCupでの学び 3 Kaggleでのメダル獲得からMasterへ 4 これからの抱負 Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 2

4.

1.データ分析コンペとの出会い Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 3

5.

1.データ分析コンペとの出会い はじめて機械学習に触れたのは、2020年1月に開催された「atmaCup #3」 ◼ データ分析の仕事をしていたが機械学習は全く知らなかった ⚫ 学びたいがなかなか機会がない ⚫ Kaggleアカウントを作ってみたものの、どこから手を付けていいか分からない ◼ atmaCup(#3)との出会い ⚫ 実地で学べるらしい(当時のatmaCupは、コロナ禍前で実地開催だった) ⚫ 8時間みんな一か所に集まって缶詰なので、他に影響されず集中できそう ⚫ nyk510さんというホストの方がベースラインプログラムを作ってくれるらしい ◼ atmaCup #3(2020年1月) ⚫ nyk510さんに教わりながら、生まれて初めて機械学習のプログラム(LightGBM)を書いた ⚫ 参加者が皆、8時間という短い時間でどんどんスコアを上げていくのに驚愕 ⚫ 教わったプログラムを使いながら、合成特徴量を少し作ったぐらいで終了 ⚫ 成績は64位/85チーム ◼ 以後、atmaCupはできるだけ毎回参加するようにして、少しずつ知識・経験を得る Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 4

6.

2.ShiggleCupでの学び Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 5

7.

2.ShiggleCupでの学び プライベートコンペのShiggleCupを通じて、ワイワイ戦う楽しさを実感 ◼ atmaCupで少しずつ学びを深めていたところ、社内に清水茂樹さんという方がいることを知る ⚫ ProbSpaceで2位を取ったり、Kaggleでメダルを取ったりとか ⚫ ソリューションを積極的に社内コミュニティへ投稿し、活躍されていた ⚫ 社内で有志を募って開催した「第1回Kaggler座談会(2021年6月)」にも登壇いただいた ◼ そんな清水茂樹さんがプライベートコンペを開催するということでお誘い頂く ◼ ShiggleCupでの学び ⚫ ShiggleCup #1 (2021年8月) • 12位/12チーム • LightGBMでスコアが伸びず、ルールベースで取り組んだりしてみたが最下位。みんな、レベルが高い。。 ⚫ ShiggleCup #2 (2021年11月) • 優勝/10チーム • はじめてのコンペ優勝!LightGBMにおける特徴量作りの重要性を強く実感 ⚫ ShiggleCup #3 (2022年3月) • 優勝/12チーム • これもLightGBMで前処理を色々工夫。LightGBMで2連覇し、少しだけ自信がつく ⚫ 知っている人とワイワイとコンペをするのはとても楽しい Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 6

8.

3.Kaggleでのメダル獲得からMasterへ Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 7

9.

3.Kaggleでのメダル獲得からMasterへ はじめてのメダル獲得(2023年2月) ◼ OTTO – Multi-Objective Recommender System(2023年2月) 232位/2574チーム:銅メダル ⚫ ECサイトの推薦アルゴリズムを構築するコンペ。ある行動履歴を持ったユーザーが、 次にクリックするアイテム、カートに入れるアイテム、購入するアイテムを予測する ⚫ アイテムやユーザーに関する属性情報が一切無く、純粋に行動履歴データのみからレコメンドをする点が特徴 ⚫ LightGBMでモデルを作成していたが、シングルモデルでは公開notebookに勝てずメダル圏外 ⚫ 作成したLGBMモデルと公開notebookをアンサンブルしたところギリギリ銅圏に入り、はじめてのメダル獲得! ◼ March Machine Learning Mania 2023(2023年4月) 93位/1033チーム:銅メダル ⚫ 例年開催されている、全米大学バスケットボール選手権(トーナメント)の勝敗を予測するコンペ ⚫ 過去のトップソリューションが公開notebookに投稿されており、これを参考にして、 少し改造したものを提出したところ、この元ソリューションが銀圏となる ⚫ 提出モデルは、改造によってわずかにスコアが悪化したものの、銅圏に残った ◼ 運良く銅メダルを2つ獲得できたことで、Kaggle Expertになれた Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 8

10.

3.Kaggleでのメダル獲得からMasterへ ソロ金メダルの獲得(2023年5月)- magicの発見 ◼ AMP®-Parkinson‘s Disease Progression Prediction(2023年5月) 3位/1805チーム:金メダル ⚫ パーキンソン病の患者の重症度を、与えられたタンパク質情報から予測する ⚫ 定量的な様々なタンパク質情報が与えられ、LightGBMで工夫をするもCVは良くなるがLBが上がらない ⚫ magicの発見 • データをよく見ようと思って、Excelで色々傾向分析をしていた。ふと、半年に1回検査をしている患者と 1年に1回検査をしている患者がいて、前者ほど症状が悪化しているように見えた • Excelのピボットテーブルで、横軸に受診月、縦軸に患者IDを取ると、明らかに検査頻度の多い患者ほど 症状が悪化していた。そこで患者を分割するようにプログラムを改良して提出したところ、Public1位に・・・ 2023/4/7 26:00頃のLB Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 9

11.

3.Kaggleでのメダル獲得からMasterへ ソロ金メダルの獲得(2023年5月)- コンペ終了までの取り組み ◼ コンペ終了まで残り40日ある ⚫ 当初はこのmagicを活用したLightGBMを工夫していたが、どうしてもスコアが上がらなかった ⚫ 方針を変更し、早い段階でmagicに気付いた優位性を生かすため、LightGBMではなく単純な 線形重回帰モデルとして、残差を減らす説明変数を作り出し、CV/LBが両方改善する係数をひたすら 探し出すことにした(なお、この過程で、もう1つの小さなmagicである、受診間隔が変わる患者を発見) ◼ 最終日にはPublic5位まで落ちてしまったが、Privateでは3位となり、はじめての金メダル&Prizeを獲得 ⚫ 会社でも色々な人から(知らない人からも)祝福して貰えてとても嬉しかった trainを軽症グループと重症グループに分け、 CVとProbingで得た最適な係数を用いて 線形重回帰で予測するソリューション Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 10

12.

3.Kaggleでのメダル獲得からMasterへ 1つ目の銀メダルの獲得(2023年6月) ◼ GoDaddy - Microbusiness Density Forecasting(2023年6月) 44位/3547チーム:銀メダル ⚫ アメリカの各地域ごとの中小企業数の時系列変化を予測するコンペ ⚫ 未来データを予測する時系列コンペで、モデル提出自体は3月中旬で締め切り、結果が6月に公開された ⚫ 実務で多変量時系列データを扱っていたこともあり、実務でのノウハウがそのまま使えた ⚫ overfit気味のハイスコアnotebookが公開されており、LBを上げられなかったので、あまり期待せず オーソドックスに解いていた ◼ 結果、44位で銀メダル(Publicは964位) ⚫ 細かい時系列ノウハウの積み上げで解いていた ①乗数予測:前月のデータと予測対象の月との間の乗数を機械学習の予測対象とした ②ターゲットの平滑化:非常に多くの外れ値があり、ターゲットの前後の3つの値のの中央値を取り平滑化 ③1〜6か月後の予測をするモデルをそれぞれ個別に作成 ④さらに個別予測の予測月の前後の月を含む3か月の平均を取って安定化 ⑤予測対象が離散値であることから、予測結果をround(0)して離散化 ⚫ ベーシックなアプローチでも、銀メダルは取ることができる(?) Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 11

13.

3.Kaggleでのメダル獲得からMasterへ 2つ目の銀メダルがなかなか取れない・・・(3~6個目の銅メダル) ◼ CAFA 5 Protein Function Prediction(2023年12月) 97位/1625チーム:銅メダル ⚫ 当初はMLPを学ぶ目的で参加していたところ、終了1週間前に銀圏notebookが公開されたために、 これをベースに改良してスコアを伸ばせないか、急遽模索することに ⚫ Top-kの選び方に絶対量基準を入れるなどで、わずかにスコアを伸ばしたが、銀圏には届かず ◼ The Learning Agency Lab - PII Data Detection(2024年4月) 134位/2048チーム:銅メダル ⚫ 文章から、個人情報に相当する部分を判定するコンペ ⚫ 判定ルールと公開notebookの推論ルールに違いがあり、後処理で違いを補正するとスコアが改善 ⚫ 後処理だけでPublic16位。しかし、この後処理でoverfitしすぎていて、シェイクダウンして銅メダル ◼ Enefit - Predict Energy Behavior of Prosumers(2024年5月) 199位/2731チーム:銅メダル ⚫ 再生可能エネルギーの生産量と消費量を予測するコンペ ⚫ 時系列APIの実装に苦労し、不具合に悩まされた。最終的に不具合を解消したモデルを提出できたが、 スコアが悪くメダル圏外だった(サブで提出した単純なモデルが銅メダルに入った) ◼ Home Credit - Credit Risk Model Stability(2024年5月) 232位/3856チーム:銅メダル ⚫ 債務不履行を予測するコンペ。終了直前に後処理マジックが公開され、不穏な空気のまま終了を迎える ⚫ 後処理マジックのおかげで銅メダルだったが、もともと作っていたモデルの精度が高くなく銀には届かなかった Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 12

14.

3.Kaggleでのメダル獲得からMasterへ メダルは取れなかったが、色々なコンペへの参加を通じて学びを得る ◼ Jigsaw Rate Severity of Toxic Comments(2022年2月) ※チーム参加 ⚫ 実質的に初めてきちんと参加したKaggleコンペ ⚫ チームメンバがみんなDeepを自在に操って高いスコアを得ていてすごかった ⚫ 清水さんは金圏Subを持っていてびっくりした ◼ ICR - Identifying Age-Related Conditions(2023年8月) ⚫ 小さなテーブルデータのコンペで参加者多数 ⚫ LightGBMでなかなかCVとLBの相関が取れない中で試行錯誤 ⚫ まさかの大幅シェイクダウンにびっくり!3,892位/6,430チーム ◼ Linking Writing Processes to Writing Quality(2024年1月) ※チーム参加 ◼ Learning Agency Lab - Automated Essay Scoring(2024年7月) ※チーム参加 ⚫ いずれも、LightGBMパートを担当するも、あまりスコアを伸ばせなかった。。 Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 13

15.

3.Kaggleでのメダル獲得からMasterへ 2つ目の銀メダルの獲得(2024年7月) ◼ USPTO - Explainable AI for Patent Professionals 22位/571チーム:銀メダル ⚫ ある特許と類似する50の特許を精度高く抽出する「検索クエリ」を当てるコンペ (類似特許自体を当てるのではない) ⚫ ルールがやや分かりにくいのと、自然言語処理にもかかわらずDeepが適用しにくい ⚫ LEAPという非常に盛り上がっていたコンペの裏開催だったりもして、参加者が少ない ⚫ 手元でCVを見ながら、主にTF-IDFアルゴリズムを調整することで、地道にスコアを上げていた ◼ 結果、22位で銀メダル(Publicも22位) ⚫ 最終ソリューションの工夫点は以下の通りで、あまり難しい処理は行っていない。 ①3段階での候補選定 1.タイトルのTF-IDF → 2.CPCコードのTF-IDF → 3.タイトルの単語出現頻度そのもの ②n-gramの調整(1語だけじゃなく、2語連語、3語連語も加えた) ※4語連語は改善せず ③max_dfの絞り込み(出現頻度が多すぎる単語は除去) ④min_dfの絞り込み(出現頻度が少なすぎる単語は除去) ⑤ストップワードの設定 ⑥候補からクエリを選び出す最適化アルゴリズムは公開notebookのものをそのまま流用させて頂いた ⚫ 地道に解くことでも、銀メダルは取ることができる(?) Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 14

16.

3.Kaggleでのメダル獲得からMasterへ atmaCupなど ShiggleCup Kaggle これまでのコンペの履歴(上位何%だったか) ◼ atmaCupやShiggleCupの経験があったことで、Kaggleでも良い成績が取れるようになった 年月/コンペティション名/順位と参加チーム数 202001 atmaCup#3 (64/85) 202006 atmaCup#5 (116/218) 202011 atmaCup#7 (121/166) 202012 atmaCup#8 (59/318) 202102 atmaCup#9 (33/268) 202103 atmaCup#10 (48/525) 202107 atmaCup#11 (53/614) 202108 ShiggleCup#1 (12/12) 202110 atmaCup#12 (19/245) 202111 ShiggleCup#2 (1/10) 202203 ShiggleCup#3 (1/12) 202302 OTTO - Multi-Objective Recommender System (232/2574) 202304 March Machine Learning Mania 2023 (93/1033) 202305 AMP®-Parkinson‘s Disease Progression Prediction (3/1805) 202306 GoDaddy - Microbusiness Density Forecasting (44/3547) 202307 atmaCup#15 (23/661) 202310 関西Kaggler会コンペ2023秋 (9/61) 202311 yukiCup2023 (42/117) 202312 atmaCup#16 (67/666) 202312 CAFA 5 Protein Function Prediction (97/1625) 202404 The Learning Agency Lab - PII Data Detection (134/2048) 202405 Enefit - Predict Energy Behavior of Prosumers (199/2731) 202405 Home Credit - Credit Risk Model Stability (232/3856) 202407 USPTO - Explainable AI for Patent Professionals (22/571) 0% 10% 20% 30% 40% 50% 60% (上位%) 70% 80% 90% 100% 76% 54% 73% 19% 13% 10% 9% 100% 8% 10% 9% 10% 10% 1% 2% 4% 15% 36% 11% 6% 7% 8% 7% 4% Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 15

17.

4.これからの抱負 Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 16

18.

4.これからの抱負 実力を付けて幅広いコンペにチャレンジして学び続けたい ◼ まだ全然実力が足りてない ⚫ DeepLearningのプログラムを書けるようになりたかったのだが、いまだに書けない ⚫ Pandasは大分慣れてきたが、Polarsやcudaの知識も足りない ⚫ もっともっと学ぶ必要がある ◼ Deep系のコンペ ⚫ ジャンルを問わずDeepLearningが強いコンペティションで、自身の創意工夫で銅メダル以上を取りたい ◼ テーブル系、時系列系のコンペ ⚫ いつか2つ目の金メダルを取りたい ◼ コンペティションの知見を実務でも活かしていきたい Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 17

19.

4.これからの抱負 データ分析コンペの面白さをもっとみんなに知ってほしい ◼ 社内での啓蒙活動 ⚫ 社内データ分析コンペの開催 • 2021年より毎年開催しており、2022年からはKaggle環境を使用 • 例年、約20チーム(40〜50名)が参加 • データ分析コンペをきっかけに、データサイエンスをキャリアの核とする若手も出てきている ⚫ 社長からの呼び出し 「Kaggleがどのようなものか知りたい」 日本は実はKaggle大国で、 世界ランキング上位1000人を見ると 日本が一番多いんですよ。 2024年1月号「知的資産創造(NRI発行論文誌)」の社長メッセージより ◼ 自分自身ももっと楽しむ ⚫ いつの日か Grandmaster / 統計検定1級 Copyright(C) Nomura Research Institute, Ltd. All rights reserved. 18