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

Kaggleの歩き方-関西Kaggler会に参加してみて-

 Kaggleの歩き方-関西Kaggler会に参加してみて-

primeNumber社内勉強会での発表資料

wakama1994

July 26, 2024
Tweet

More Decks by wakama1994

Other Decks in Programming

Transcript

  1. ©primeNumber Inc. 3 名前: 若松 拓夢 年齢: 大谷世代 入社時期: 2023年10月

    本業: そりゅーしょん 副業:slackスタンプ職人 自己紹介 ※ミライ会議の自己紹介で誕生しました笑 コレクション ※trocco5周年のノリです笑
  2. ©primeNumber Inc. 10 まず呼び方ですが、Kaggleと書いて「カグル」と読みます。日本でも最近は定着してきましたが、Kaggleに参加している方を「カ グラー(Kaggler)」とも呼びます。 Kaggleですが、本サイトへ行くと一番上に書かれていますが「The Home of Data Science

    & Machine Learning」 (データサイエンスと機械学習の家)と題されている通り、世界中の機械学習・データサイエンスに携わっている約 40万人の 方が集まるコミニティーです。 Kaggleでは、企業や政府などの組織とデータ分析のプロであるデータサイエンティスト/機械学習エンジニアを繋げるプラット フォームとなっています。単純なマッチングではなく、Kaggleの最大の目玉とも言える「 Competetion(コンペ)」が Kaggleの特徴の一つです。 kaggleの概要 2017.11.22「Kaggleとは?機械学習初心者が知っておくべき3つの使い方」より引用 ※2023年現在の登録者は1400万人
  3. ©primeNumber Inc. 11 kaggleの構成要素 • Competitions →予測した結果のスコアを競う • Dataset →主に参加者がコンペで使ったデータが保管

    • Model →kaggle内で実行できるモデル • Code →主に参加者が作った解析コードの保管場所 • Discussion →コンペにまつわる議論や教え合いの場 • Learn →主に初学者を対象とした学習コンテンツ Competitions(コンペ)が最も盛り上がってる
  4. ©primeNumber Inc. 14 • Active compeditionから現在やっ ているコンペを見つける ◦ Medal(後述)有/無 ◦

    賞金の有/無 • 参加方法 ◦ SOLO: 一人参加 ◦ Teams: 五人まで ▪ チームを組むのは一定 期間まで可能 コンペを見つけて参加してみよう! https://www.kaggle.com/competitions
  5. ©primeNumber Inc. 15 submit(結果の提出方法).... • テーブルコンペ ◦ csvで予測結果を提出 ◦ 初心者コンペに多い

    • codeコンペ ◦ 解析したcodeを提出 ◦ 解析処理時間(Ex: 9h) が設けられる場合も ◦ 一般的になりつつある コンペのsubmit(結果提出)とレベル感 レベル感 https://atmarkit.itmedia.co.jp/ait/articles/2108/30/news033.html
  6. ©primeNumber Inc. 16 表形式データ 
 • 回帰
 ◦ 【Started】House Prices

    - Advanced Regression Techniques: 住宅価格の予測
 • 二値分類
 ◦ 【Started】Titanic - Machine Learning from Disaster: 生存有無の予測。Kaggleで最初にやってみるコンペ
 ◦ 【+Featured】Home Credit Default Risk: 貸し倒れの予測
 
 • 多クラス分類 
 ◦ 【Playground】Tabular Playground Series - Jun 2021: eコマース製品のカテゴリの予測
 • 不正検知(=二値分類。※異常検知の直近のコンテストはなかった)
 ◦ 【Research】IEEE-CIS Fraud Detection: 顧客取引からの不正の検出
 ◦ 
 • 時系列(=回帰の一種)
 ◦ 【Featured】Recruit Restaurant Visitor Forecasting: 未来日付におけるレストラン訪問者数の予測
 ◦ 【Research】Web Traffic Time Series Forecasting: 未来におけるWikipediaページトラフィックの予測
 • レコメンデーション 
 ◦ 【Featured】Santander Product Recommendation: 来月に使用する製品の予測(=推奨)
 ◦ 【Featured】Elo Merchant Category Recommendation: 顧客購買行動に対するロイヤルティ度の予測
 コンペの例: 構造化データ https://atmarkit.itmedia.co.jp/ait/articles/2108/30/news033.html
  7. ©primeNumber Inc. 17 画像/動画 
 • 認識
 ◦ 【Started】Digit Recognizer:

    MNIST多クラス分類
 • 物体検知/追跡 
 ◦ 【Started】Facial Keypoints Detection: 顔画像上のキーポイント位置の検出
 音声
 • 認識
 ◦ 【Research】Rainforest Connection Species Audio Detection: 熱帯でのサウンドスケープから鳥やカエルの種 の検出
 テキスト/言語 
 • 分類
 ◦ 【Started】Natural Language Processing with Disaster Tweets: 災害かそうでないかの識別
 • エンティティ抽出 
 ◦ 【InClass】Shopee Code League - Address Elements Extraction: テキストから住所部分の抽出
 • 質問応答(=生成の一種)
 ◦ 【Featured】Google QUEST Q&A Labeling: 質問に対する回答の生成
 ◦ 
 • テキスト変換 (=生成の一種)
 ◦ 【Research】Text Normalization Challenge - English Language: 英語テキストを書き言葉から話し言葉に変換
 コンペの例: 非構造化データ https://atmarkit.itmedia.co.jp/ait/articles/2108/30/news033.html
  8. ©primeNumber Inc. 19 Discussion は、コンペティションの内容に関わる議論をする掲示板 Discussion では以下のような内容が投稿 • 初心者からの質問 •

    ルールに関する質問 • 知見や手法についての議論 • 予測精度に効く特徴量作成 • 論文などの2次情報 Discussionについて 引用元https://www.kikagaku.co.jp/kikagaku-blog/kaggle-competition/ https://www.kaggle.com/discussions?sort=hotness
  9. ©primeNumber Inc. 22 コンペの評価方法...統計学的な指標で競う場合が多い ex) MAE(絶対平均誤差), RMSE(二乗平均平方根誤差), F1 score, Log

    Loss… • 最近LLM系のコンペも出てきてるので、この限りではない コンペの開催期間... • 2-3ヶ月かけて行われるものが一般的 • 中には、1週間で短期間で行われるものも ◦ この類のコンペだと、短期決戦でお題をどこまで理解できるかも焦点 評価方法とコンペ開催時期
  10. ©primeNumber Inc. 23 コンペの順位... Public Score: コンペ期間中に出る順位 (一定割合のデータのみで判断) Private Score:コンペが終わった時の順位

    (全データで判断) • Private Scoreで順位が決まります • Publicからの順位の上がり下がりを shake up/down Public score/Private score 順位の決定
  11. ©primeNumber Inc. 27 Knowledge Compedtition • 過去のMedalコンペを題材にしたもの ◦ 有名なのだとTitanic •

    時間無制限でいつでもsubmitが可能 ◦ Medalコンペとくらべ、初心者にやりやすい Learn • Python や機械学習などについて学べる場 • Kaggle Notebook環境を使って練習問題を解く 初心者向けコンペや学習コンテンツも充実...!! https://www.kaggle.com/learn/time-series
  12. ©primeNumber Inc. 28 実はKaggleスタートではありませんでした • SIGNATEと呼ばれる日本のコンペプラットフォームが入口 ◦ SIGNATE上の初心者コンペ(AI Quest)で好成績を出せて楽しくなった ◦

    外部の講座(データサイエンティスト養成講座)を修了し、コンペ勉強会に参加 • コンペ勉強会の仲間が、kaggleに参加していたので、自分もチームを組んで参加 ◦ 運よくメダルが取れたので、そこから楽しくなって今に至る ※詳細はQiitaの記事にもしてるので、気になる方は後で読んでください 参考: 私の始め方
  13. ©primeNumber Inc. 30 Kaggle継続するにハイスコア必要!?? ハイスコア出すなんて、 データ分析普段やらないから 無理だ・・・ 称号持ってる人と 勝負するなんて結果 わかりきってるよ・・

    いい精度出すには パラメータチューニング。。 美味しいですかそれ? 徹夜してハイスコアまで 出したいと思わないな・・・
  14. ©primeNumber Inc. 33 • ユーザーがデータセットを置いて、公開できる • OSSのように公開するためのプラットフォーム • データ制限は、private datasets全体で20GB上限

    • どんなデータでもアップすることは可能 • Kaggle API for datasetsでアップロード・ダウン ロード可能 • コンペ以外のデータも沢山あります ◦ 自分でアップロードも可能 Datasetについて https://blog.hamayanhamayan.com/entry/2020/05/04/104943 https://www.kaggle.com/datasets
  15. ©primeNumber Inc. 34 データセットの形式 形式 例 備考 CSVs 「The Complete

    Pokemon Dataset」 json SQLite 「European Soccer Database」 BigQuery 「USA Names Data 」 利用方法 • Big Query を使い始める • クエリを超えて: BigQuery API の探索 ユーザー 1 人あたり 30 日間でスキャンされ るデータの割り当ては 5 TB アーカイブ 「胸部X線画像(肺炎)」のデータ 検索方法や規約については、How to Use Kaggleを参照
  16. ©primeNumber Inc. 36 External Data 
 コンペのルールでExternal Dataが認められている場合、収集したExternal DataをKaggle Datasetとして公開したものをDiscussionで

    shareしておくと高い評価を貰いやすいようです。
 コンペデータを加工 
 最近のコンペでは、入力に時間がかかる前処理を施す必要があることもあります。これらのコンペで時間がかかる前処理を施したあと のデータセットを新しいデータセットとして公開すると評価されやすいようです
 
 ライブラリ 
 Internet使用不可のコンペではKaggleのdocker imageに入っていないライブラリを使いたい場合、Kaggle Datasetsにライブラリを加えて それをNotebookで読み込むようにするやり方が広く使われています。コンペにおいて重要なライブラリなどをDataset化して公開すると 多くの人から評価されるようです。
 学習済み重み 
 ハイスコアNotebookを重みも公開した状態で公開すると重みの方にもupvoteがつきやすくなると言うトリックがあります。金圏や銀圏上 位にそのまま入れてしまうようなNotebookの重みの公開は快く思わない人もいるようですが、コンペ終盤でない限り多くの人に歓迎され ています。
 DataSetでのメダルの取りやすさ https://zenn.dev/koukyo1994/articles/7b8b06de0680f0
  17. ©primeNumber Inc. 37 Discussionでのメダルの取りやすさ 上位解法(割愛) 
 手元のスコア vs kaggle 上のスコア(割愛)

    
 関連論文やリンクのまとめなど 
 コンペ序盤に現れやすいスレッドで、金メダルを取りやすいです。過去の類似コンペを調べてその上位解法のリンクを貼ったり、関連研 究の論文をいくつか読んでリンクと簡単な説明をつけたり、と様々ですが、これをやるメリットとしてその過程で自分もいろいろ知見をた めることができる、というものがあります。
 自分がドメイン知識がある分野の場合や、リサーチ力には自信がある場合にはこれで金メダルを狙うのはカタいと思います。
 バグ報告 + 解決法など 
 最近はKernel Onlyのコンペが多いこともあり、submissionにまつわるエラーなどが出やすいという傾向があります。これらについての報 告やそれをどう解決したか、という情報は他の人にとっても非常にありがたいことが多く、高く評価されやすいです。
 アイデア共有 
 言うまでもないことですが、重要なアイデアの共有はいずれのコンペにおいても歓迎されます。重要なアイデアなんだからあまり共有は したくないと思う方もいるかもしれませんが、実際のところそれを生かしてスコアをあげるチームはそれほど多くないことがほとんどで す。
 https://zenn.dev/koukyo1994/articles/7b8b06de0680f0
  18. ©primeNumber Inc. 38 Notebookでのメダルの取りやすさ 初期のベースライン(スターターNotebook) 
 スターターNotebookは先ほども述べたものですが、ここではコンペ初期のベースラインのようなものだと考えています。最初に出た ベースラインはupvoteをもらいやすい傾向にありますが、そうでなくても
 1. コンペを進める上でいろいろカスタマイズしやすい


    2. naiveなやり方ではたどり着けないくらいには高いスコアがちゃんと出る
 ようなNotebookはupvoteをもらいやすいです。(中略)手の速さに自信がある方はスターターの公開に全力を注ぐのも一つの楽しみ方 ではないでしょうか?
 ハイスコアNotebook(割愛) 
 知見共有系 
 例えば危険な特徴が混入していることを警告するNotebook、ライブラリの使い方やよく知られていないドメインのお作法の解説、デー タの偏りを指摘するNotebookなど、様々なものがあります。
 https://zenn.dev/koukyo1994/articles/7b8b06de0680f0
  19. ©primeNumber Inc. 39 コンペも自分でも開けちゃいます! Kaggleコンペに当たっては以下の3要素があれば、開催できます! • コンペに出題する問題 :単一な変数を予測することが出来る設計にする必要があります。 • 予測に用いるデータ

    :必要なデータをクリーニングして Kaggleの運営側に渡す必要があります。ま た、テーブルデータの場合は数万~数十万行ほどのデータがあったほうが良いとのことです。 • お金:企業開催コンペの一般的な費用は $85,000~$200,000程度のようです。Kaggleの運営側に開催準 備を手伝ってもらうことが多い場合や、賞金設定によって費用は上下します。なお、賞金設定は最小 $25,000とのことです。 ※コンペを開催することで、Dataset, Discussion,Notebookのメダル獲得や称号保持者もいます 引用元:Kaggleでコンペを開催する方法について調べてみた
  20. ©primeNumber Inc. 40 企業でのコンペ事例やコンペコンサルの会社まで...!! • Panasonicでは多数のkagglerが在籍し、活発に社 内コンペを実施 ◦ その他、リクルート,野村総研,NTTコミュニ ケーションズ,

    ネットワンズシステムズ etc • Nishikaやatma cupなどの国内コンペプラット フォームではコンペコンサルも...! ◦ atma cupの中の人は個人でコンペ相談乗っ てくれるそうです... https://tech-ai.panasonic.com/jp/blog_page.html?id=20220805
  21. ©primeNumber Inc. 48 参考: 私のkaggleとの向き合い方の変化 発表 聞く前 SOLOでコンペのメダルとって凄いと言われたい! • メダルも取れたし、SOLOでExpert目指そう

    ◦ 業務をやりながらで一人だとキツすぎる.... ◦ 周りより優位なところ見せたい... 発表 聞いた後 どんなやり方でもいいから、kaggleと継続に関わりたい! • 今まで通り、チームで楽しくやっても良さそう • 社内の人とチーム組んで、バーカンで酒飲みながらやりたい....! • 社内コンペ開いてみんなで盛り上がりたいな....
  22. ©primeNumber Inc. 56 交流会に参加した全体的な感想 • 強強 kagglerでも業務や体調面から無理なくコンペをやる人が多い • kagglerは、意外にもデータサイエンスがベスプラだと思ってない ◦

    ダッシュボード可視化が最高だと思うkaggle Masterの方も • メダルに固執しすぎず、改めていろんな頑張り方があると理解 ◦ チームで出る楽しさ、成長に重きをおいても!!良さそう....!! • コンペをpN社内でも開催したい....!! ◦ データセットの準備は大丈夫、問題設定の事例も沢山ある ◦ コンペを通じて、部署間の交流も生まれるし、分析周りの知見も溜まる
  23. ©primeNumber Inc. 61 発表のまとめ • 一見するとコンペで黙々とハイスコアを出すしか楽しめなさそう.... • しかし、データに関する様々なコンテンツが充実 ◦ コンペ同様にメダルや称号もあります

    ◦ 自分でコンペを開いたり、コンペと関係ないデータも見れます! • コミュニティもいっぱいあるし、一緒にやる仲間もたくさんいます! kaggleはどんな楽しみ方をしても ※ kaggleもいいですが、私はGoogle Professional Data Engineerの再試を8/4(日)に受けます...データエンジニアもがんばります...