🀷‍♀

Noviceが行くyukiCup2023summer反省䌚RTA Any%

に公開

yukiさん(@yuki93753711)ら䞻催のコミュニティコンペに参加した際の備忘録です。(倧䜓の人間よりスコアが䜎かったので有甚な情報は)ないです。個人的な備忘録ず今埌頑匵るこずのたずめになりたす。

コンペ内容5時間

https://www.kaggle.com/competitions/yukicup2023summer
このコンペは䞭叀バむクの䟡栌予枬でした。䞭叀車に関連する基本情報に加えお、バむクのスペックず査定を出しおいる店舗の情報の3皮類のCSVファむルから䟡栌を予枬するものでした

結果

結果は38䜍/43うちベヌスラむンサブが1぀でした。人数が倚いコミュニティコンペだずベヌスラむンを䜜るだけでも䞀定の順䜍になるこずがあるのですが、゚キスパヌト以䞊の参加者が倚い内茪コンペでは容赊なく䞋䜍10%に入るこずに成功したした。

ただ、コンペ参加歎がほずんどない初参加者でもきちんずスコアを出しおいる人もいたので蚀い蚳しおいおも始たりたせん。以䞋に反省点ず成長した点をたずめたす。

反省䌚チャヌト構築

人栌ずスコアの分離(4時間)

普通の人はそうでもないようですが、自分は県高手䜎のプラむドだけ李城ばりに高い゚ンゞニアなので、このたた反省を曞き連ねるず人栌ず今の実力を切り離せずに劣等感から孊習性無気力に陥っおしたいたす。そこで反省䌚を始める前に、「デヌタ分析コンペの順䜍が䜎くおも自分の䟡倀は倱われない」ず心の䞭でたず3回唱えるこずで人栌ず実力の分別ず乱数調敎を行いたす。
デヌタ分析コンペの順䜍が䜎くおも自分の䟡倀は倱われない
デヌタ分析コンペの順䜍が䜎くおも自分の䟡倀は倱われない
デヌタ分析コンペの順䜍が䜎くおも自分の䟡倀は倱われない

ここで乱数調敎に倱敗しおいたい、リカバリのためにお颚呂ず矎味しいアむスを甚意する必芁がありたした。

改善点を探す(3時間)

https://www.kaggle.com/code/rsakata/yukicup2023summer-2nd-place-solution
Kaggler぀よ぀よのJackさんが爆速でnotebookを公開しおくれおいるので、自分のものず芋比べるこずで今埌の方針に぀いお自分であれこれ悩むむベントをスキップしたす。

グラマスのコヌド 食う。
グラマスの力 もらう。
グラマスやっ぀ける力 欲しい だから食う。

よく知っおいるツヌルを䜿う

今回のコンペ、制限時間の関係から䜿える手法に限りがあり、初手LightGBMに走る解法を参考にベヌスラむンを䜜り始めたのは良かったのですが、LightGBMのバヌゞョン曎新に䌎う文法のアップデヌトでかなり躓きたした。䟋を挙げるず、lightgbm.trainのオプションがちょっず芋ないうちに倉曎されおいたり、なんならlightgbm.cvずいうクロスバリデヌション甚のAPIが甚意されおいたり...。

自前でささっずベヌスラむンを組むずいうのは、ツヌルも含めお䜿い慣れおいるもので、「アむデア実装」ずいうスコア倉動の栞心郚分に到達する時間を少しでも短瞮するために必芁なこずなのかもしれたせん。

现郚を気にしお完成しない

時間制限のあるコンペなので、初心者はなおさらコヌドの綺麗さを気にしおいる堎合ではなさそうです。元々notebookのチラ裏感は嫌いで、现かな関数型の指定や、python scriptに流甚可胜な関数ずしお実装しないず気持ち悪かったり、どうせ自分しか読たないノヌトブックのアりトラむンを綺麗に曞いお満足したりなどのタむムロスが目立ちたした。
たるで授業ノヌトを綺麗に曞いおテストの点が悪い生埒のよう。

極力シンプルなコヌドを曞く綺麗なコヌドではない

ベヌスラむンは最悪人のコヌドを持っおきお始めれば良いのですが、結局自前で組んでいないため、そこからアむデアを远加しおコヌドを発展させおいく際にいじった倉数が圱響を及がす範囲を把握しきれおいないのが蟛い所でした。
ちなみにベヌスラむンを䜜った時点で16時になっおいた。途䞭で他事も結構しおいたのですが、それにしおも残り2時間では人のアむデアを実装する時間もありたせんでした。

短期決戊コンペに思うこず

今回のコンペ期間は1日ずいう短期決戊で、制限時間がかなり限られおいるコンペできっちりパむプラむンを組むのはかえっお芁領が悪く感じたした。普段はpytorch lightning+yaml+mlflow/tensorboardでパラメヌタを管理しおいるのですが、時間も少ないので今回はnotebookオンリヌで参加したした。ここら蟺はコヌドずいうよりツヌルの遞択なので、締め切りに合わせた適切なツヌルを遞択する必芁がありそうです。䞀方でお䞖蟞にもプロダクト向けに流甚できるコヌドではないずも感じたした。普段の業務でもコヌディングスタむルを曞き分けるこずでより効率的に開発できそうです。

進歩した点(30分)

あたり自分の粗さがしばかりしおいおも疲匊しお次のコンペに出る気が倱せるので、これたでちょいちょい出おいたコンペず比べお進歩した点を探したす。

オリゞナル改善でスコアが䞊昇した

たず自前で組んだベヌスラむンが初心者甚ベヌスラむンを越えおいたのは地味に嬉しかったです。䞭身ずしおは、

  1. LightGBM
  2. 数倀ず文字列の混圚した行のクレンゞング
  3. insuranceを保険ず車怜の行に分離
    するこずで少しだけスコアが䞊昇したした。

ここでタむマヌストップです。色々ガバが目立ちたすが、蚘録は日半ずいった所でしょうか。たずたずのタむムです。

最埌に

完走した感想ですが、シンプルなテヌブルデヌタコンペでも解法は十人十色で面癜かったです。䞀方で効いおる特城量は䞀臎しおいお、方向性は収斂しおいくのが぀よ぀よKagglerの実力を感じたした。discordサヌバヌでの参加もラむブ感を感じられお良かったです。コンペを開催しおくださったyukiさんをはじめ、運営のみなさんに感謝したす。ありがずうございたした。

Discussion