この記事はKDDI Engineer&Designer Advent Calendar 2022の16日目の記事です。
はじめに
はじめまして、KDDI株式会社の@kazuki_yです。
KDDIではデータサイエンティストのエキスパートとして、お客様向けサービスのデータ分析支援やAI・データ利活用の全社方針策定などの業務を行っております。
コンペ経歴は約2年半でKaggle MasterとSIGNATE Masterの称号を持っています。
本記事では、機械学習初心者がKaggleにどう取り組んで、どのようにKaggle Masterになったのか、Kaggleに取り組んで良かった点を振り返っていきたいと思います。
世の中では度々Kaggleは役に立たない論が出てきますが、私としては昇進もして、賞金も獲得して、技術力も得て、更には自信もついたので超役に立つと思います!本記事が参加への一助になれば幸いです。
Kaggleに参加する前のレベル
タイトルに記載した通り、Kaggleに参加する前は業務でも機械学習を利用しておらず機械学習初心者でした。初心者といっても何も知らないわけではなく、データ分析の研修等で線形回帰や決定木、クラスタリングなどは一通り学んだことはあるレベルで、Pythonやpandas等のライブラリは業務で利用していることもあり、それなりに習熟していました。
Kaggleに参加したきっかけ
Kaggleに参加したきっかけとしては、業務で機械学習が必要になり勉強を始めたことです。勉強をするならスキル向上にもつながるし、転職にも使えそうだなと思ってKaggleに参加することを決めました。
Kaggle参加までの準備
機械学習とデータ分析コンペの勉強は有名な「Kaggleで勝つデータ分析の技術」を読んですぐにKaggleに参加しました。コンペの最低限の知識が網羅でき、機械学習って手法だけ習っても実務でどうしたら良いのかわからない状態になると思うんですが、この本はその辺りもきちんと埋めてくれて最高の本でした。(最新動向追加した改訂版お待ちしてます。)
Kaggleでは勉強よりも実践が大事だと思っているので、完璧を目指すのではなく1週さらっと読んだらコンペに参加して実践してみるのをおすすめします。追加で必要な事項や理解不足な所はコンペの内容によって勉強していけば良いと思います。
Kaggle Masterまでの道
この章ではKaggle Masterになるまで参加したコンペを順番に振り返っていきます。
-
2020/03 : Kaggle「Google Cloud & NCAA® ML Competition 2020-NCAAM」
- タスク:アメリカの大学バスケの勝ち負けを予測
- 初めてのコンペ参加!と思いきやコロナの影響で大会中止&コンペ中止に。。
-
2020/06 : Kaggle「Kaggle M5 Forecasting - Accuracy」
- タスク:ウォルマートの将来の商品の売上を予測
- 順位:160位/5,558チーム(シルバーメダル獲得)
- 超シェイクコンペで1,258位シェイクアップしたので素直には喜べなかったです(モチベーションはちょっと上がりました)
- 解法は公開ノートブックを参考に特徴量を追加したり、アンサンブルしたりしてました。結果は運が良かっただけですが、時系列の扱いとしては非常に勉強になりました
-
2020/08 : Kaggle「SIIM-ISIC Melanoma Classification」
- タスク:画像から皮膚がんかどうか判定
- 順位:50位/3,308チーム(シルバーメダル獲得)
- M5と同じくシェイクコンペで1,107位シェイクアップで、棚ぼたエキスパート昇格。今考えると良くないですね、当時は喜んでましたが。。
- しかし、Kaggle参加し始めて選んだコンペが、①コンペ中止、②シェイクコンペ、③シェイクコンペって、コンペ選びへたくそか。(メダル取れてるから逆に上手いのか…?)
-
2020/11 : Kaggle「Mechanisms of Action (MoA) Prediction」
- タスク:遺伝子や細胞のデータから作用機序を予測
- 順位:84位/4,373チーム(シルバーメダル獲得)
- 初のシェイクダウン。Public LBの最終順位はゴールドメダル圏内だったので非常に悔しかったのを覚えています。
- 自分のアイディアによってCVやLB、順位が向上するというKaggleの面白さに本コンペで初めて触れたと思います。(先の2つのコンペはCVとLBが連動せず、Trust CVしてました)
- このあたりで公開ノートブックをごにょごにょするだけでは勝てない、自力で解法を作る力が必要だと思うようになりました。
-
2021/01 : SIGNATE「JR東日本 列車運行予測」
- タスク:過去の運行情報から将来の電車の運行時間を予測
- 順位:2位/442チーム(賞金50万円、ゴールドメダル獲得)
- Kaggleで勝てるビジョンが見えなくなり、目線を変えてみようと国内コンペに参加してみました。(実際はお金に目がくらんだだけです)
- 初期の方にPublic LB 1位になって期間中は気が気じゃなかったです。この賞金によって、コンペ参加の家族の理解が得られるようになりました。
- 国内コンペはディスカッションやコード共有が充実しておらず、初めて一から一人でソリューションを作り上げました。Kaggleで学んだ内容が非常に役に立ったので、①Kaggleで学ぶ、②国内コンペで入賞して自信を得る、③Kaggleで頑張る、みたいな参加の流れもおすすめです。
-
2021/07 : SIGNATE「パナソニック株式会社 間取り図解析アルゴリズム作成」
- タスク:間取り図から部屋領域や建具を認識
- 順位:2位/143チーム(賞金60万円、ゴールドメダル獲得)
-
こちらもお金に目がくらんで参加しました。最終のPublic LB 1位だったので結構悔しかったです。 - 物体認識やセグメンテーションモデルは扱ったことがなかったので、1から勉強したり最新の論文のモデルを引っ張ってきたりいろいろやりました。経験の足りない部分はアイディアと力業で埋めました。2,000枚以上のトレインデータのアノテーションを1枚1枚手動で修正したりしました。(データセット修正によりこの作業を3、4回したのでまじで地獄だった)
- 初めて社外の方にインタビューして頂いたり貴重な経験もしました。
- このあたりからかなり自信もついてきて、頑張ればKaggleでもゴールド取れるのでは?と思えるようになりました。自信大事。
-
2022/05 : Kaggle「H&M Personalized Fashion Recommendations」
- タスク:過去の購買履歴から各顧客に対して次の1週間で購入しそうなアイテム12個を推薦
- 順位:8位/2,952チーム(ゴールドメダル獲得)
- 念願のゴールドメダル!!!Kaggle Master昇格!!!めちゃくちゃうれしかったです。嬉しすぎてLBの写真を使ってTシャツまで作りました。(Kaggleの許可をもらってます)
- 参加して割とすぐにゴールドメダル圏内に入ったこともあり、それ以降は仕事と子育て以外の時間はほぼすべてKaggleに費やしてました(辛かった)。コンペ終盤のGW中は子供と遊んでいたためあまり時間が取れなかったですが、意外と周りの追い上げが少なく、なんとか順位は守れました。
- 入賞について会社広報からTwitterやHPなどいくつか出して頂きました。
Kaggleに参加して良かったこと
- Kaggleの実績も後押ししてエキスパート職(グループリーダー相当)に昇進
- 給料は3桁万円以上アップ!!!
- エキスパート職には市場評価が考慮されておりKaggle Masterは1つの良い指標になった
- データ分析に関する技術力や自信の向上
- ベースライン作成速度の向上、新たな案件でも余り迷わなくなる
-
自社をクビになってもどこでも生きていける気がする
- 賞金の獲得
- 累計120万円獲得
- モチベーションにもつながるし、楽しくコンペしてるだけでお金がもらえる!(コンペ終盤はめちゃ辛い)
- プレゼンスの向上
さいごに
最後まで読んでいただき、ありがとうございました!
私はKaggleに参加し始めて人生が良い方向に変わりました。
上記の通り良かったことは色々ありますが、ぶっちゃけ一番言いたいことはKaggleは楽しいってことです。
合う合わないはあると思いますが、興味あればチャレンジしましょう!