【Nishika体験記】不動産価格予測2022春の部
最初に挑戦したのはチュートリアル的に四半期ごとに開催されている不動産価格予測のコンペ。
挑戦の過程と苦労した点について記載していきます。
※具体的な情報(ソースコード等)はまた別の記事で・・・
1.準備
まず初めにやったのは、コンペに参加するにあたり何を使ってどう進めていくかの計画立て
1-1.プログラム言語の選択
使用した言語はPython
下記が主な理由
AI開発や機械学習によく使われている
ネット上にドキュメントが多い
分析に使いやすいライブラリを多く実装している
1-2.コーディング環境
GoogleColaboratoryを使用した
下記が主な理由
共同編集がしやすい
自分のPCのリソースを消費しない
Pythonのインストール作業が不要
部分実行などの機能が充実しており効率がいい
処理速度が速い(と思っている)
1-3.何を参考にするか・・・
やみくもにコーディングをしてもコンペ開催期間内(3か月)でやりきれる自信がなかったため、参考にするものを探した。
その中で運営側で準備されたチュートリアルコードがあることが判明した。
ざっと見た感じそのまま使えそうだったので、これをベースに進めていくことにした
2.チュートリアルコードの解析
チュートリアルコードとはいえ、Pythonのしっかり欠損値補完や、特徴量生成がされていたため、まずは解析して、何をやっているのかまとめることにした。
チュートリアルコードの大まかな流れは以下
学習データ読み込み
欠損値補完
データ整形
特徴量生成
データ分割(学習データとテストデータ)
モデル生成(LightGBMが使用されていた)
データ予測
予測データ出力
解析してみた感想
軽いノリで始めたが、分析ノウハウがぎっしり詰まっていて、「ここのコードで何してるんだろう」の連続だった。(5,6時間は掛けたと思う)
同時に少しいじれば身の回りのデータ分析にも転用が可能だった。
3.ひとまず提出
解析の過程で予測結果のデータが出力されたので、ひとまず提出してみることにした。
実際のデータ(答えデータ)との誤差が絶対値で0.0985・・・
これがいいのか悪いのかはわからなかったが前回優勝者が0.070付近だったため、もしかして簡単なんじゃ・・・と感じた
実際にサイト上に自身のアイコンが表示されたのはモチベーションにつながった
4.スコア上げ
ひとまず提出してみて、手ごたえを感じたので、チュートリアルコードをカスタマイズしてスコアを上げていくことにした。
やったことは以下
欠損値補完の強化
データ整形の強化
分析モデルのハイパーパラメータ調整
結果から言うとハイパーパラメータの調整以外、スコア上昇にはつながらなかった。
他は、何をやっても、スコアとモチベーションは下がる一方・・・
そうこうしている間に、コンペの期間は終了。
結局最後までチュートリアルコードのスコアを大きく超えることはできなかった。
5.結果発表
最終結果は421人中130位(30.87%)
参加者の中には参加だけして結果の提出をしていない人も多くおそらく上位50%にも入れていない。
どうやら、暫定ランキングと最終ランキングは異なるらしく上位ランカーたちは最終ランキングが出るまでドキドキタイムがあるみたい。
6.最後に
よかったこと
スコアを上げようと何度もチュートリアルコードを見直していく中で、毎回ここをいじったらスコアが上がるんじゃないかと試行錯誤をしていくことでソースコードとしてではなく分析のロジックとしての理解度が上がったこと。
また、チュートリアルコードに倣えば、結果はどうであれ、データを予測するモデルが作成できて予測結果をアウトプットできるようになったこと。
この0から1の差は大きいと思う。
辛かったこと
数時間かけてプログラムを修正しわくわくして結果を投稿しても下がったときは、もう無理なんじゃないかと思った。
ネットの記事を参考に自分なりに理解してカスタマイズしてもうまくいかなかった。
唯一よくなったハイパーパラメータのチューニングは、よく理解せずとりあえずでやってみたことで、手ごたえがなかった。
次回への意気込み
次は上位20%を目指しやってみる!
過去コンペの入賞者コメントで、入賞者が自身のやっていることを解説しているのを発見したため、次回はそれを参考にやってみることにする。