はじめに
2025年4月1日から機械学習エンジニアにキャリアチェンジをした、完全なる初心者である筆者による、Kaggleの有名なコンペティション、House Pricesの挑戦を、全4回に分けて記録しました。
このコンペ、あまりにも有名すぎて調べるといくらでも解説などが載っています。しかし、多くの解説が「これが上手くいきます」以上の説明がなく、その手前の「なぜその作業をしようと考えたのか」「どんなことを試してみたら上手く行かなかったのか」や「その失敗からなぜそのような作業をしたのか」という説明が少ないと思います。
なので、この一連の記事では「データをのぞいてみる」ところから、可能な限り全ての作業を一つずつ「なぜそうしたのか」の説明もしながらHouse Pricesコンペティションを進めました。
ですから、この連載の目的は「Kaggleに勝つ」「ハイスコアを目指す」ではなく、「MLエンジニアとしての思考・試行を分解する」ことにあります。他人の記事を探せばいくらでもハイスコアを取る方法は書いてありますが、一つひとつの作業や試行を真の意味で理解をするために、それらはいっさい参考にしていません。
言うなればこの連載は「コンペの挑戦実況」を書き起こしたものです。
かなり長く、またメモ書きをほぼそのまま記事化しているので、ところどころおかしな文になっているかもしれませんが、ご了承ください。
ソースコード
この連載で書かれたコードについては、下記のリポジトリをご覧ください。
GitHub: kaggle-house-prices
記事一覧
①全ての作業を自動化する
-
挑戦記①:全ての作業を言語化する
セットアップからデータの取得、探索的データ分析と特徴量作成まで。
②ベースラインモデル作成
-
挑戦記②:ベースラインモデル作成
作成した特徴量をもとに、簡単な線形モデルで特徴量同士の関係などを把握。
③ランダムフォレスト回帰
-
挑戦記③:ランダムフォレスト回帰
特徴量同士の非線形的な関係を捉えるため、決定木系のモデルに移行。Optunaを使用したハイパーパラメータチューニングなど。
④XGBoostから提出まで
-
挑戦記④:XGBoost実装から提出まで
ブースティングによる予測精度の向上と過学習の抑制のため、XGBoostを本番モデルとして選定。SHAP分析による可視化など。