はじめに
こんにちは、初投稿になります。
今年の1月からエニグモでデータサイエンティストをしている堀部と申します。
1/25(土)に行われたCA × atmaCup というオフラインのデータコンペティションのイベントに参加しました。
【東京・大阪同時開催】CA × atmaCup - connpass
85チーム中、Public 12th/Private 5th*1とKaggle Expertとしてはまさかの最上位という結果でした。
コンペ前、コンペ中、コンペ後に分けて振り返ります。
※本記事ではコンペのデータやタスクについては情報公開が難しいため触れません。
コンペ前
コード整理
以前のコンペや業務で使っていたコードをなるべくクラス・メソッド化してgitにまとめて整理しました。綺麗なコードとは言えないですがまとめておいたおかげで、新しい特徴量の作成やタスクに特化したデータの前処理に時間を割くことができました。主に汎用的な特徴量生成の処理やGBDTモデルの実験をやりやすくする下記のようなコードをまとめていました。
-
- trainとtestの特徴量の重なりをベン図で表示https://github.com/konstantint/matplotlib-venn
特徴量生成
- 1種類しかないカラムを削除
- 集約特徴量の生成(mean, median, max, min, std)
- label encording
- count encording
- target encording
学習(モデル)
- ベース:lightgbm 5-fold
- オプション:random seed averageやlightgbm tunerをオンオフできるように追加
コンペ中
素敵な環境でした
サイバーエージェントさんのできたてほやほやのオフィスのスクランブル交差点の見える席でもくもくと作業しました。頭を使いすぎて最後2時間くらいは少し頭がぼーっとしてました。
コンペティションサイトの出来が素晴らしかったです。○aggleと違ってすいすいsubmitができストレスなく作業に集中することができました。
コンペ中の作業方針
- 必要最低限の特徴量でベースライン作成してsubmit
- EDAやfeature importanceを見て特徴量追加
- CVもpublic LBも伸びたら採用
- ひたすら、2,3を繰り返す
モデルはずっとlightgbmシングルでアンサンブルはしませんでした。lightgbmのハイパーパラメータはcat_smoothのみ手動チューニングしました。
そして、特徴量のアイディアが一旦つきたところで lightgbm tunerを使って一度パラメータ探索をした結果を最後まで使いました。
コンペ後
表彰式、懇親会
コンペが終わってすぐ結果発表&表彰式がありました。上位3名の方の解法を聞くことができました。 その特徴量効きましたよねと共感したり、そのアイディアは思いつかなかったなとメモしたりすぐに情報共有できるオフラインコンペならではのよさを実感しました。
その後の懇親会でも当日のコンペだけでなく別のコンペについての取り組みについても話を聞くことができ、普段からコンペに参加しておくメリットも感じました。
次の日
次の日は日曜日だったので表彰式や懇親会での話を受けて思いついたアイディアを実装して追試をしていました。少し考えればこの特徴量は要らないかもと思ったものを削除しただけで、スコアが伸びたりとなぜコンペ中に気がつかなかったのかと後悔もありました。
また、上位の方が公開してくれたコードやgitを見て自分のコードの汚さに愕然としました。
普段から綺麗なコードを書く、他の人のコードを見て学ぶということを日頃から意識しようと胸に刻み込みました。
最後に
(真剣に取り組んだ)コンペの数だけ強くなる、強い人に会いに行くという大切さ、オフラインコンペならではの大変さ、楽しさを味わうことができたとても充実した一日でした。次回があればまたぜひ参加したいです。
また、エニグモ に入社して1ヶ月が経ちましたが楽しい日々を過ごしています。ABテストの効果検証×傾向スコア、商品のクラスタリング、回帰予測モデリングなど、自分で思いついてビジネスに貢献できそうなものであれば自由に取り組んでよいボトムアップの環境です。
個人的には、
- ファッションEC × CtoCというドメインならでは多様性のあるデータ(テーブル、テキスト、画像)が扱えること
- 社内の半数以上の方がSQLをかけデータをビジネスに活用する文化が定着していること
- BigQuery, AWS, Lookerなど、ツールへの投資が当たり前のように行われていること
によさを感じています。
コンペ以上に業務も楽しく取り組める強いチームをつくれたらと思っております。興味のある方はぜひ気軽にご応募ください。選考とは別にカジュアル面談も受け付けております。データサイエンティスト、データアナリスト、データエンジニア、検索エンジニアなど各種募集中です。