signate「国立公園の観光宿泊者数予測」コンペ

signate「国立公園の観光宿泊者数予測」コンペの解法
1
stat @stat67316766

交差検証は、2015と2017年の2パターンを分けてCV=2で実施。 特定日の祝日などを特徴量に入れたため。(これが甘かったのか?)なお、公園別にモデル推定。熊本地震後の影響と伊勢志摩サミット前後が明らかな外れ値のため、対象期間は除外。

2018-12-21 21:15:22
stat @stat67316766

SVR=Support vector regressionです。

2018-12-21 21:16:34
stat @stat67316766

ある公園の2015年の値が、別で県が公表している周辺の宿泊者数と動きが明らかに異なるので補正。これは効果が若干ありました。

2018-12-21 21:18:25
stat @stat67316766

月と週と祝日ファクターを変数。祝日は、正月やGWなど特定日は、個別変数として、祝前日効果も捉えるために、ラグ有も変数に追加。 SVRは、他の変数を加えるとCVが悪化するため加えずモデル①とする。

2018-12-21 21:25:30
stat @stat67316766

後は、SNNと、前日までのJorudanの検索件数(到着は前日まで、出発は2日前まで)、天気を変数に加えて、LGBMで推定(モデル②)。 なお、欠損する15/1/1は、16/1/1の値で補完。Jorudanは、15/1を16/1の値で上書き。

2018-12-21 21:35:07
stat @stat67316766

ちなみに交差検証のLGBMとSVRの組み合わせのところをずっと間違えてて1週間くらい無駄した。 まぁいずれにせよレベルは低いわけで。

2018-12-21 21:35:35
stat @stat67316766

ちなみに、時系列分析のアプローチをとりたかったが、累積の予測をする必要があったので、説明力は上がりそうだが、うまい予測の処理が浮かばず。。LGBMは、こういった外挿も必要そうな分析にはうまくいかなさそうですが、うまくいっている人もいるようで。。

2018-12-21 21:42:26
copypaste @copypaste_ds

はてなブログに投稿しました signate 公園コンペ で8位でした。 - copypasteの日記 copypaste-ds.hatenablog.com/entry/2018/12/… #はてなブログ

2018-12-22 00:04:34
u++ @upura0

@copypaste_ds やはり、自分と全然違ってとても勉強になりました。2015年を捨ててでも1年前のラグ特徴を作り、それを補うべくover samplingなのですね。データ量を優先して、その方針は捨て置いてしまいました…。あと一箇所「2015.6->」とあるのは誤植かもです。

2018-12-22 00:22:26
ktr @ktr_wtb

@copypaste_ds 日光の分布の違いは印象深かったですね〜。最後まで悩みました。単純なラグ1をとらなかったのはあくまでも前年の類似に注目したからでしょうか?

2018-12-22 07:33:21
copypaste @copypaste_ds

@ktr_wtb ラグ1特徴の作り方がわかりませんでした。。2017年のデータに対して、どのように作成すれば良かったのでしょうか。考え方としては、2017-05-05の特徴量に2017-05-04の目的変数を使うということでしょうか?

2018-12-22 09:49:46
ktr @ktr_wtb

@copypaste_ds そうですね。予測誤差が伝播する危険もあったと思いますが…私はそれだけでpublicLBで2000近くになり有効かと思ってました…。oversamplingの手法はとても参考になりました❗️今後の記事を楽しみにしています〜。

2018-12-22 10:37:32
copypaste @copypaste_ds

@ktr_wtb 2017年の目的変数は与えられていなかった気がするのですがどのように作りましたか??(もしや与えられていた...??)作れたなら有効だったと思うので試すことができなくて残念です。。嬉しいお言葉ありがとうございます!

2018-12-22 10:53:45
copypaste @copypaste_ds

@ktr_wtb 予測値を特徴量にするということでしょうか?それならラグ0の予測値を特徴量にしてうまくかなかったので、ラグ1は試すこと無く終わりました。。

2018-12-22 11:08:53
ktr @ktr_wtb

@copypaste_ds そうですね20161231のターゲットを20170101にスライドさせて20170101の予測を出してそれをスライドさせて…って感じでした。入賞者の解法の共有が待ち遠しいですね。公開を祈りつつ楽しみに待ちましょう〜。

2018-12-22 14:06:33
wakame@🍜🍛🍖🍻🥂 @wakame1367

公園コンペの解法を連投ツイートで公開してみる。理由はツイートで事足りるくらいの内容しか書くことないから。

2018-12-22 19:53:27
wakame@🍜🍛🍖🍻🥂 @wakame1367

特徴量 ・休日フラグ(pypi.org/project/jpholi…) ・前日・次が休日であるか ・year/month/day/hour/dayofweek/quarter/weekofyear/dayofyear ・四季フラグ

2018-12-22 20:04:16
wakame@🍜🍛🍖🍻🥂 @wakame1367

モデル ・xgboost ・GradientBoostingRegressor のアンサンブル

2018-12-22 20:07:21
wakame@🍜🍛🍖🍻🥂 @wakame1367

バリデーション やってない、やってないのであんな結果に・・・

2018-12-22 20:08:07
wakame@🍜🍛🍖🍻🥂 @wakame1367

あと公園ごとにデータ分けて予測しています

2018-12-22 20:08:39
hatry @priordist

社内ブログにSIGNATEの公園コンペの解法について書きました。 recruit-tech.co.jp/blog/2019/02/1…

2019-02-18 15:58:38