初心者からKaggle銀メダルへの道 vol.6
皆さんこんにちは!
このnoteでは完全な初心者からkaggleで銀メダルをとるという目標に向かってどのように勉強していくかという内容の記事を投稿しています。
データサイエンスを学びたい!という方はもちろん、データサイエンティストを育てたい!という方も、参考にしていただければ幸いです!
これはあくまで私の体験談が皆さんのお役に立てればと思っているものなので、技術的な質問や、個人的なコーチングをご希望の方は以下のオンラインサロンものぞいてみてください。
今回は以下の点についてお話ししたいと思います!
・コンペを変えました
・データをめっちゃ見たらデータの見え方が変わる
・過学習との闘い
この3点でお送りしたいと思います!
【コンペを変えました】
少し期間が開いてしまったので、最近やっていることをお話ししたいと思います。実は前回までやっていたコンペとは違うコンペに7月に入ったあたりから取り組んでいます。
House Priceというコンペです。
このコンペはかなり難易度の低いコンペで、まだまだひよっこの私にと手はこのコンペでいいスコアを目指すのがちょうど手ごたえがあるくらいのコンペです。
というのも、その前に取り組んでいたSale Predictionがだいぶ難しかったので、、、。難しかったポイントがいくつかあります。①時系列データであった②データの量が膨大で、処理にすごい時間がかかった③データのテーブルがいくつかあり扱いづらかった。
House Priceは与えられたデータを基にその住宅の販売価格を予測するというものになっています。シンプルな回帰問題ですね!特徴量がもともと80個くらいあるというデータなので、タイタニックよりもボリュームはあるが、も過ぎないという問題になっています。
【データをめっちゃ見たらデータの見え方が変わる】
House Priceのデータを見ると謎の特徴量がいっぱいあります。例えば、「FirePlace」「BsmtfinSF」とかです。
そもそもこれは何のデータなのか?というものを見ることはとても大切だと感じました。よく見てみると、このデータはAmes(エイムズ)というアメリカの都市のデータだということがわかりました。そこでAmesの気候やどんな都市なのかということを調べると、アメリカ北部の寒暖差が激しい場所だということがわかります。となると「FirePlace」は暖房の状態を表すものだとわかります。
また、アメリカの住居には「ベースメント」と呼ばれる半地下室がありきれいに整備されているパターン(finished)とそうでなく作業場のようになっているパターン(Unfinished)があるということを知りました。となると「BsmtfinSF」は整備されたベースメントの面積(Square Feet)という数値変数だとわかります。
そういったことをGoogle mapsで家を見に行くと何を言っているのかがよくわかりました。単なる数値として扱う前にぜひ一度「生」のものを見に行くことをお勧めします!アメリカの住宅になぜかものすごく詳しくなってしまいました笑
【過学習との闘い】
今はというと、モデルがとにかく過学習を起こしてしまっていて困っています。今のところ、まだ何が原因で過学習してしまっているのか、いまいち原因を突き止めることができず、1週間ほど停滞している状態です。
過学習を防ぐために以下のようなことを試しています。モデルはLightGBMです。
・決定木の深さを浅くする
・特徴量を減らす。
・数値変数の特徴量をbinningする
binningというのは例えば身長という変数を150㎝台、160㎝台、170㎝台という形に変形するというものです。
しかしなかなか突破口を見出せずにいます。何かいい方法があればコメントいただけると嬉しいです。