19/07/13

プロローグ

はじめに

  • このスライドが映される頃には、私はきっとその場にはいないでしょう……
    • すべてのkagglerに栄光あれ――
  • 作成者: きぬいと
    • RコンペとELOコンペでexpertになるような人間
      • スケジュール管理ができない

遺言の内容

  • KKKPにかんする感動の物語
    • チームを組む(第1章)
    • エジプト入り(第2章)
    • エジプトでの迫害(第3章)
    • 出エジプト(第4章)
    • エピローグ
    をお話します

LANL Earthquake Prediction

  • 通称地震コンペ
    • rawdataが6億行とかいうのがたのしい
  • 予測するのは「地震が起きるまでの時間(Time To Failure; TTF)」
  • 予測のために利用するのは「圧力がかかっている機械の音(acoustic emission)」
  • 指標はMAE
    • all-zero submissionでpublicの平均が割れるなどの楽しい出来事があった(公開論文)

LANL Earthquake Prediction

  • 公開論文があった
    • きぬいと的には初めての経験
  • 結構なヒントがあったらしい
    • Time Since Failure(TTFの反転)を予測するのはうまくいく
    • MAE Hack(Public LBの正解データの平均がわかる)
  • きぬいとがこれに気づくのはだいぶあとだった

KKKPとは

  • 地震コンペが本格的な初チームマージな集団
    • TokyoR(Rユーザコミュニティ)で知り合った人たち
    • 通称「TokyoRチーム」(by 某++)
  • チームメンバーのうち2人はほぼ初コンペ
  • チームメンバーのうち3人は資本が同じ社会人

登場人物

  • Kumakichi(くまきち)
    • EDAを通したアイデアでエジプト入りを成し遂げた英雄
  • Kur0cky(くろっきー)
    • Kumakichiのアイデアを具現化するエース
  • tsuyuPon(つゆぽん)
    • AWSでrawdataをそのまま強引にEDAする豪腕
  • Kien Knot(きぬいと)
    • JTMRCで愚痴ってるモブ
    • みんなR使ってる中イキってpython使うモブ

第1章 チームマージ

チームマージのきっかけ

  • きぬいと「地震コンペしません?」
    • くまきち「いまやってたわ」
    • つゆぽん「もう少ししたら手を出そうって思ってる」
    • 「「「チームとか組みたいね」」」
  • とはいえ多少は個々で戦ってみたい
    • ブレンディングハイスコアkernel(1.448)を破る目標
    • モデルやアイデアを練りつつそこで落ち合おう的約束をした

チームマージのきっかけ

  • TokyoRにて
    • kur0cky「kaggleでチームとか組んでみたいです!」
    • きぬいと「なんかコンペあったら組みませう!」
  • 地震コンペ
    • きぬいとの内心「もっと強い人に誘われてそうだなあ」
    • きぬいと「地震コンペ、ともにゆこうではないか」
    • kur0cky「うむ、ゆこう」
    • そういうことになった

第2章 初エジプト入り

チームマージ後、アイデアを持ち寄る勢

  • 公開Blending kernelを越えたきぬいとのkernelをベースにkaggler坂(神楽坂)に集結する
    • kaggler坂をkaggler坂っていうやつはみんなも使っていいですよ
    • 極端な上下が当たらないな
      • 極端な「下」を当てに行こう
    • 「地震」と定義されている時点の直前に起きている「何か」を予測できないか
      • 「子持ち昆布から卵がはがれる」やつを回避したいよね

参考: 子持ち昆布プロット

  • これ(index横軸にした予実のプロット)
  • 単純な予実縦横プロットよりも多用した

とった戦略

  • ベンチマーク(後述)の予測値で外しがちな極端な「下」を強引にそれっぽい値に置き換える

    こいつの0〜0.3付近を置き換えた

ベンチマーク

  • きぬいと担当
    • 多くのkernelをベースに作り上げたキメラ
      • ダメダメexpert特有のkernel錬金術
      • 特別な特徴量があるわけでもなく、単純に安定感のあるモデルだった(はず)
    • LightGBMでgammaタスクを解かせていた
      • 精度も高く上位圏のSolutionでもgammaタスクだった
      • が多数派に呑まれてfairとかhuberとかに流れてしまい伸びず(そこはあまり関係ない)

結果

  • public1.337

第3章 エジプトでの迫害

ここから伸びない(あたりまえ)

  • アイデアは出るがうまく形にならない
  • どんどん後続に抜かれる
    • 最終的に銀圏までジリジリと落とされる
  • CPMP「特徴量7つとかでいけるんだが????」
    • 実験データだしそこまでひねりのある特徴量や複雑なStackingとかいらない
    • きぬいと、変にこだわりだす

kumakichiの才覚

  • 「Time to FailureよりTime since Failureのほうが予測しやすいんじゃないか」

    (もうちょい深堀れればUAEあたりで済んだかもしれない)

  • 一方きぬいとはアイデア力も技術力も追いつかなくなる
    • 苦し紛れのKNRegを2時間で実装するなど(モデル的に活かせなかった)

最終日夜

  • きぬいと「力尽きました」
    • みんな「は?」
  • Kumakichi & Kur0cky、世を徹して最後のsubmitに挑む
  • 最終的にきぬいとのFinal Submissionに委ねられる
    • リアルガチで3時間悩むやつをした
  • Trust CVか、Trust PBか……
    • 今思えばDiscussionで散々「PBは信用できん」って言われてたんだよね

第4章 出エジプト

最終的なSubmission

  • エジプトの思い出(Public 1.337)
  • 最終日の追い込み(Public 1.492)

AM 9:00

  • Before(Public 70th)

AM 9:00

  • After(Private 831st)

AM 9:00

  • や さ い
    • なお最終日追い込みのほうが採択されていた
    • エジプト入りは2.676
  • Local CVを信じていなければもっと落ちていた

エピローグ

全体的に

  • 地震コンペだけにものすごく揺れた
    • 上位勢が片っ端から吹っ飛ぶ
    • なぜかCPMPとGibaが残る
      • Gibaに至ってはShake upしている
    • kaggle GMこわいこわいだね
  • 上位勢のSolutionも「なんだそれいみわからん」って感じの内容はそんなない
    • Trust our CVを信じつつ、やるべきことをやるとエジプト入りする

私達は

  • 70th → 831st
    • 強引なPostprocessingは良くない感じであった
    • むしろ予測値全体に重みづけたりなんなりするほうが良かった
    • Trust your CVが座右の銘になった
  • Late subベンチマークにGiba式Postprocessing
    • 銀圏スコアが出たりした
    • 予測してから先の戦略も学んだ
  • 全員初チームマージ←これ
    • ワイワイできたし確かに集合知はあった。
      • けどうまい連携はとれなかった……
    • @チーム慣れしてる各位 どう連携してるか教えてほしい

感想

  • きぬいと「いいけいけんだった。つぎはもっとうまくやるさ」
  • くまきち「高揚感に呑まれて情報収集をサボると自尊心全損オチが待ってることが分かりました!つらいです!」
  • くろっき「チーム戦楽しくて学会の準備していない……」
  • つゆぽん「Weight0, but cost 10k(JPY)」

おわり