こんにちは!アドベントカレンダー2日目はshimikouがお届けします!
この度データ分析コンペに初挑戦しましたので、実際に参加してみて得られた学びを今回は共有したいと思います。
同じように挑戦を考えている方の参考になれば幸いです!
コンペの概要
今回私が挑戦したコンペはSIGNATE Cup 2024です。
本コンペティションでは旅行会社の保有する顧客データ(属性や志向、営業担当との接触履歴等)を元に、旅行パッケージの成約率を予測するモデルを構築することがお題でした。
ちなみに、データ分析コンペを開催するサービスといえばkaggleが有名ですが、それ以外にもデータ分析コンペはNishikaやSignateなどたくさん存在しています。
分析コンペそれぞれの比較はスタビジさんのブログが参考になります。
データ分析コンペに挑戦するために行った勉強
今回コンペに参加するにあたり、そもそもコンペってどのように申し込みを行って、申し込んだ後に何をすればいいのか、といった初歩の初歩からわからなかったので
以下の本を読んで事前に学習をしました。
こちらはkaggle向けの本ですが、コンペ参加の方法はkaggleでもsignateでもほとんど変わらないので、分析コンペ参加のハウツー本として役立つと思います。
また、機械学習に関する基本的な知識はこちらの本で学習しました。初心者でもわかるよう非常に丁寧に機械学習モデルの構築方法について解説されており、
つまずくことなく最後まで読むことができました。
分析コンペを通じて実際に学んだこと
本コンペへの挑戦後、上位入賞者の解法を紹介するイベントにも参加しました。
そこで実際に解法をきいてみると、自分と上位入賞者との間には取り組み方に大きなギャップがあることを感じ、多くの学びを得ることができました。
以下は実際に学んだことです。
①モデル構築前のデータ探索の重要性
まず第一にモデルを構築する前にしっかりとデータの探索的な分析を行うことの重要性を学びました。
例えば、実際に旅行パッケージの成約率を予測するにあたって、どのような客層で成約率が低くなっているのか、逆に高くなっているのかをまずはしっかりと把握することがとても大切です。
そこで得られた結果をもとに、新たな特徴量を生成することで、予測結果に対する重要度のより高い特徴量を生成できることなどにもつながります。
自分はコンペ参加時、モデル構築部分に注力しすぎて、データ探索をおろそかにしてしまっていたために、モデルの予測精度が全然あがらなかったことを実感しました。。。
②クラスリバランスの重要性
今回の旅行パッケージのデータはそもそもの成約率が14%しかないため、データの中身を全く見なくても不成約とだけ予測しておけば、86%の正答率を出せてしまうようなものになっています。
このようなデータにおいて、モデルをトレーニングするときには成約不成約の割合が均等になるようにアンダーサンプリング(多数派のデータを少数派のデータにあうように調整する方法)をする必要があることを学びました。
また、このようなデータの不均衡などを把握するためにも、①で述べたデータ探索は重要だということです!
③コンペでよい成績を得るためには、様々なアプローチを知っていてそれを使い分けることが必要
当然ではありますが、コンペで上位入賞を目指すためには様々なアプローチ方法を知っていて、それを使い分けることが重要です。
そのためには、実際に多くの予測モデルを自分で構築するとともに、他の人はどのような方法でモデルを構築したのかを学ぶ必要があります。
そしてまさにデータ分析コンペに参加することこそが、その実践と学びの手段となっているわけです!
さいごに
今回データ分析コンペに参加してみて、非常に多くの学びを得ることができました。(上記以外にも技術的な面で細かい学びが数えきれないくらいありました!)
今後も継続的に分析コンペに挑戦することで、機械学習の知識と実践力をもっともっと磨いていきたいと思っています!