見出し画像

初心者からKaggle銀メダルへの道 vol.5

皆さんこんにちは!
このnoteでは完全な初心者からkaggleで銀メダルをとるという目標に向かってどのように勉強していくかという内容の記事を投稿しています。

データサイエンスを学びたい!という方はもちろん、データサイエンティストを育てたい!という方も、参考にしていただければ幸いです!

これはあくまで私の体験談が皆さんのお役に立てればと思っているものなので、技術的な質問や、個人的なコーチングをご希望の方は以下のオンラインサロンものぞいてみてください。

今回は以下の点についてお話ししたいと思います!

・kaggleのノートブックを見よ!
・特徴量をとりあえず増やせ!
・ラグ特徴量を作れ!

この3点でお送りしたいと思います!

【kaggleのノートブックを見よ!】

今現在私は、「predict future sales」という過去コンペに取り組んでいて、時系列データの取り扱いに苦慮しているところです。

以前にもお伝えした通り、まずはコードを自分で書けるようになることが大切で、最初から意味も分からないまま他人のコードをコピペしていると、あとから痛い目にあいます。そのため、pythonのコードが書けるようになるということは、kaggleに取り組んでいくうえで必須のスキルであることには間違いありません。

しかし、ある程度コードが書けるようになると、kaggleのnotebookに書いてある内容が読めるようになります!こうなったら、積極的にkaggleのnotebookからデータの前処理や特徴量エンジニアリングのあたりをパクってきて自分のモデルを作るという作業になってきます。自分で一からやるのは効率が悪すぎるという話です。(EDAは自分でやったほうがいいと思いますが、、、)

画像1

この際にもわからない処理があれば写経したり、調べたりして理解しながら進めることが重要です。なぜなら、理解しないまま進めると、自分の想像と違うデータになっていたりすることがあるからです。

このノートブックを「漁る」ということが非常に重要となってきます。

【特徴量をとりあえず増やせ!】

少し雑なタイトルになっているのですが、前述のようにkaggleのnotebookを漁ってもらえれば、このタイトルの意味が分かると思います、、、。

私はとっても初心者だったので、わからなかったのですが、EDAの結果として出てくる「このような特徴量を作ったらよさそう!」みたいな、いわば質の高い特徴量を入れてあげるというのと、とりあえず何でもいいから特徴量を作るというのであれば後者のほうが良いようです。

例えば、商品の種類と、それが売られた都市でグルーピングをして特徴量にしてみるといったように、基本情報を掛け合わせていくことで多くの特徴量が生まれてきます。

今回が取り組んでいるのは時系列問題なので、ラグ特徴量というものを作っているとあっという間に特徴量の数が増えていき、現在カラム数は60近くになっています。ちなみに私のコーチの方は350くらいのカラム数にしたとか、、、。

とりあえずはたくさん特徴量を量産してみて、モデルを作った後に特徴量重要度を可視化してみたりして、いらないものは削っていくという形のほうが良いと思っておけば大丈夫です。

ラグ特徴量を作れ!

時系列データの特徴量としてよく用いられるのが、ラグ特徴量というものです。ラグという言葉にもある通り、例でいうとその商品の1か月前の売り上げを特徴量として与えてあげたものになります。

時系列のデータは、時系列というとても重要な情報を持っているにもかかわらず、それを反映させてあげることがとても難しいという特徴があります。その一つの解決策としてラグ特徴量というものがあるわけです。

もちろんラグ特徴量だけでなく移動平均(rolling)と呼ばれるものなどを使っていく場合もあります。この記事を参考にしてみてください。

このラグ特徴量は1か月前、2か月前、3か月前、6か月前、12か月前という風に入れてあげることができるため、一つの特徴量に対して多くの特徴量を得ることになります。5個特徴量を作ってあげたら、それが25個になるというイメージですね、、、。

そんなことをしているとどんどんとデータが重くなっていくわけです、、、。その解決方法も今後お話しできればと思います!

本日は以上になります!お読みいただきありがとうございました!

この記事が気に入ったらサポートをしてみませんか?