5th Place Solution

はじめに

今回probspaceでは初めてのコンペの参加でしたが、CV、LBがマッチしていて楽しく取り組めるコンペでした。
5位ならsolusion公開しても格好がつくかなと思い、初めて書きます。至らない点も多いと思いますが少しでも参考にしていただけると嬉しいです

foldについて

まずはfoldの切り方についてです。
今回は単純にn_splits=5のKFoldと取引時点をgroupsにしたGroupKFoldを使いました。
train、testが時系列で別れていたのと、取引時期において不動産の取引価格は変動するというドメインからGroupKFoldも試しました。
KFoldでもCVとLBはちゃんと相関していたので問題なかったと思いますがGroupKFoldにするとLBのスコアはあまり変わらないけれどCVは悪化していたので、KFoldのほうがもしかしたらCVを過大評価しているのかもしれないと考えました。
ただ、LBのスコアはKFoldのほうがよかったので最終的にはどちらも使って(特徴量作成、モデリングともに)、最終的にアンサンブルする方針にしました。

モデルについて

モデルにはLightGBM、catboost、xgboostを使いました。
各モデルともにKFoldとGroupKFoldのものをつくったので最終的には6モデルを使ってstackingしました。

特徴量について

  • カテゴリカル特徴量のエンコードはターゲットエンコーディングを使いました
  • ターゲットエンコーディングを用いたので特徴量もKFoldとGroupKFold用に分けました
  • baseline作成後に効いたのは、市区町村名、地区名それぞれでgroupbyして、建ぺい率、容積率、面積の集計特徴量でした
    • 地区ごとの建ぺい率の平均を加えたときに手応えを感じました
    • 住宅地の密集さなどでその地区の特徴を入れれたかなという気持ちです
  • 面積×建ぺい率や面積×容積率、また接道義務などのドメインも特徴量として加えましたが、これらは効かなかったです(使い方が悪かったのかも)

最後に

うまく組み込めたドメインもあれば、うまく組み込めなかったドメインもありましたが、総合的には与えた特徴量に関してちゃんとスコアが返ってくる楽しいコンペでした。
個人的にもcatboostを初めて使ってみたり、ちゃんとstackingまで取り組めたので実りあるコンペになりました。
あと、不動産についていろいろ調べてたら広告が不動産だらけになりました。

Aws4 request&x amz signedheaders=host&x amz signature=615a3241f270c7f204ba8df76ed63a1e2308e29a2a2781b8f6e5e53dcae43664
wakame

コンペお疲れさまでした! コンペ解法読ませていただきました、勉強になります。 解法について質問です、記載がなかったのですが公示価格データ(published_land_price.csv)は使われなかったのでしょうか。私の解法では市区町村名や最寄り駅名等でグルーピングして平均した公示価格の値が結構効いたので聞いてみました。

Aws4 request&x amz signedheaders=host&x amz signature=537196aaf78b705463c541578b15291a724e9851ad2d10cc44f04f4bffad945b
tenajima

ご質問ありがとうございます。wakameさんもコンペお疲れ様でした。(ライブラリまで作ってしまうのすごいです!)
公示価格データはトピックを参考にして市区町村名と取引時点の年数ごとの地価のみ使いました。
publised_land_price.csvのデータの理解を深くしていなかったのであまり使えなかったのですが、けっこう効いたのですね...
勉強になります、ありがとうございます!

Favicon
new user
コメントするには 新規登録 もしくは ログイン が必要です。