初心者からKaggle銀メダルへの道 vol.4
皆さんこんにちは!
このnoteでは完全な初心者からkaggleで銀メダルをとるという目標に向かってどのように勉強していくかという内容の記事を投稿しています。
データサイエンスを学びたい!という方はもちろん、データサイエンティストを育てたい!という方も、参考にしていただければ幸いです!
これはあくまで私の体験談が皆さんのお役に立てればと思っているものなので、技術的な質問や、個人的なコーチングをご希望の方は以下のオンラインサロンものぞいてみてください。
データサイエンティストの頭の中 | オンラインサロン革命!ONSALO
今までのオンラインサロンと異なり、常にファンのメリットを追求されたオンラインサロンサービスです。ファンが喜ぶ、ファンが共に
今回のもくじは以下の点についてお話ししたいと思います!
・ロシアのソフトウェア会社の過去コンペの進捗
・よく使うモデル
以上の2点になります!
【ロシアのソフトウェア会社の過去コンペの進捗】
今私が取り組んでいるのは前回の記事でも掲載させていただいた「predict future sales」という過去コンペです。
このコンペは1ヶ月分の商品の売れる個数を予測するという問題です。その中で最近できるようになったこと、勉強中のことを書いていきます。
・時系列データの扱い
このデータは過去33か月分のデータを用いて34か月目の予測を立てるというものです。しかし、データは月ごとにまとまっているわけではなく、日付も店舗も商品も完全にバラバラです。
そのデータをまずはまとめることから始めます。そのため、groupby関数の扱い等はだんだんとできるようになってきました。また、時系列に沿った可視化の方法もとても重要なスキルなのでここで身に着けておきたいところです。
今は「ラグ特徴量」というものの作成を頑張ろうとしているところです。これがウルトラ重要になるようです。この辺は完全にほかのkagglerのノートブックを参考にさせていただくことになると思います。
・複数のデータセットの扱い
このコンペのデータセットはテストデータや提出データを除いて、4種類のデータセットがあります。購買データ以外に、商品データ、店舗データ、商品カテゴリーデータの4種類です。これらをどのように組み合わせながらデータとにらめっこしていくかというスキルが必要とされていました。
・ロシア語問題
アイテム名や店舗名がロシア語のデータなので読めません。そのため、google翻訳大先生を駆使してデータを見ていくことになります。その中で、よくわからない文字列の中から、都市の名前を抽出して、新しい特徴量にして分析をします。モスクワの最強さが確認できたりすると、データ分析やってんなていう気分になります。
【よく使うモデル】
pythonを学び始めたころに、PyQで様々なモデルを勉強しました。例えば回帰も出るとか、決定木とか、サポートベクターマシンとかランダムフォレストとか。この辺は時と場合によって使い分けるのかなと当時は思っていたのですが、実際は基本これ!というモデルがあるようです。
それがLightGBM(ライトGBM)というものです。結局LightGBMに突っ込むみたいな感じだそうです。ほかにもxgboost(xgブースト)や、Catboost(キャットブースト)というモデルもよく使われています。これらは勾配ブースティングと呼ばれるモデルの一種で、複数の決定木モデルを使っていくものになります。
あとはNN(ニューラルネット)というものを用いる場合もあるようです。この辺はまだ自分もよくわかっていません。なんか脳みたいな構造で学習するものらしくて、画像認識とかそういう系でよく使われるらしいです(全然違ったらすいません)。
何はともあれいったんLightGBMが最強と覚えとけば何とかなります。そのため、トップkagglerだろうが始めたばっかりであろうが、モデルの形は基本的にそこまで差が出ません(アンサンブルとかは大事)。なのでその前の特徴量エンジニアリングや、バリデーションの設計といった部分で差が出てきます。
だからそのための可視化やEDAのスキルが大事になるということです!!今日は以上です!
この記事が気に入ったらサポートをしてみませんか?