本記事について
初めまして!
minegrammer(みねぐらまー)です!
この記事は CDLE youth Advent Calendar 2022 18日目の記事です。
先日行われた、MUFG Data Science Basic Camp に参加し、1位優勝しました!
本記事ではデータ分析コンペの参加結果・解法の共有と脱初心者の戦略に触れたいと思います。
本記事ではデータ分析の初中級者を対象としています。
データ分析に興味があるが、そもそもデータ分析コンペとは?という人は、先にコンペ自体の流れを調べてもらえると内容がよくわかると思います!
専門用語の説明は省略しているので、調べてわからなかったらtwitterにDMしてください。
アジェンダ
- コンペについて
- 解法
- 勝因
- 脱初心者の戦略
- まとめ
1. コンペについて
MUFG Data Science BasicCamp
2022年9月12日(月)~10月16日(日)
テーブルデータでお弁当の販売個数を予測するコンペでした。
初中級者向けということでデータ数は少ないですが、データ数が少ないと工夫がしづらいことが分かりました。
また評価データの数も少ないので、分類タスクなどでは評価データ次第の結果にもなりそうです。
2. 解法
-
前処理
明らかに売れすぎているデータの削除(学習に悪影響そうなもの)
欠損値の補完
ユニーク値の削除(1回しか出現しないものは他とまとめます) -
特徴量
元データの特徴量
kcalが欠損かどうかのフラグ
料理名・カテゴリ・調理法ごとに条件分岐で 0 , 1 の特徴量を作成(ゴリ押し) -
学習
ランダムフォレストをfold数 5 で学習
3. 勝因
解法はかなりシンプルだったと思います。
自然言語処理やアンサンブルなど色々なことを試しましたが、結果としてシンプルが一番良かったです。
特に勝因となったのは以下の3つです。
-
データを理解したオリジナルの特徴量
集約値だけでなく、データそのものの特徴を反映した特徴量を作成した -
交差検証による適切なモデルの評価
public LB と private LB で評価されるデータが変わるため、モデルの汎化性を評価する必要があった -
CV の値とpublic LB の結果の記録
CV の値とpublic LB の結果から適切な最終モデルの選択ができた
3-1. 得られたこと
コンペ序盤は生データを見る(EDA)
交差検証で汎化性の評価をする
実験の記録を残す(どのように記録していくか有識者に教えていただきたい)
4. 脱初心者の戦略
ここからは脱初心者する戦略を、完全に筆者の主観で書いていきます!
それぞれの定義は以下です。
-
初心者
データ分析に興味がある。
データ分析の経験を聞かれた時の内容が勉強内容である。 -
中級者
一定の領域・難易度の課題であれば、価値を創出できる。
データ分析の経験を聞かれた時の内容が、コンペ・研究などの取り組みの内容である。
4-1. アプローチ
主なアプローチは以下の2つで、同時に行う方がいいでしょう。
- データ分析コンペへの参加
- 過去のコンペの解法の調査
① データ分析コンペへの参加
まずは、コンペに参加してみることが一番重要だと思います。
そのときの、思考過程・課題・他者との比較などの経験が、後々に役に立ちます。
また、ただ座学で勉強するよりも実際に試行錯誤する方が、リアリティを感じられて勉強になります。
コンペの選び方は
- 学生限定
- 課題設定、評価指標が理解しやすい
- テーブルデータ
の辺りがいいと思います。
特に学生限定コンペでは課題設定も簡単で、データも少ないので積極的に参加しましょう。
ただ、学生限定の自然言語処理などのコンペでは(これはおそらくですが)、高順位に入るためには高スペックのマシンが必要になるみたいです。研究室などのPCを借りられるのであればいいですが、そうでない場合は追加費用が必要になるかもしれません。
② 過去のコンペの解法の調査
コンペに参加したら、まずはそのコンペの課題設定や評価指標を理解します。
その後は、過去の類似したコンペの解法を調査しましょう。
必ず使える技術はないかもしれませんが、アプローチのヒントになると思います。
まさに、私の「料理ごとにOnehotベクトルを作成する」という解法は、別のコンペの解法から着想を得たものでした。
5. まとめ
いかがでしたでしょうか。
データ分析にこれから取り組まれる方の参考になれば幸いです。
データ分析コンペに参加することは沢山のメリットがあるため、ぜひ今後とも参加したいです。
対戦よろしくお願いします。