cczouk
参加者の皆様お疲れさまでした。
思った以上にprivateのスコアが伸びたので驚いています。
提出するか迷った最終候補の中には、publicのスコアとprivateのスコアがほぼ同じものもあったので運がよかったです。
以下のリンク先にコードをアップロードしてあります。
https://github.com/cczouk/probspace_pollen
以下Solutionの概要です。
※リンク先にも同じ内容を記載しています。
pollen
を4で割った値を目的変数としてtweedie, huber, rmseを使用。NNのモデルは自前で以前に実装したTransformerをベースにしたモデルです。
テーブルデータに使えそうな手持ちのモデルをパラメータごと使いまわしています。
アンサンブル用として精度は期待せずに割り切って使っています。
基本はtweedie, huberを使って得られた各モデルの予測値のweight ensembleです。
アンサンブル後に整数値に丸め、4をかけています。
さらに、予測値が一定以上になった場合、rmseで得られた予測値のアンサンブル結果に置き換えています。
外れ値のような大きな値へのフィッティングはtweedie, huberよりもrmseが優れていると考えました。
アンサンブルの重みはLBスコアを参考に調整しましたが、
コードにミスがあるのに気づかずに調整していたこともあり、かなり雑になってしまっているので
調整の余地はまだありそうです。
どの要素がどの程度スコアに貢献しているか検証できていないのですが、
アンサンブルと損失関数の使い分けがよかったのではないかと思っています。
トレーニングデータとテストデータでは花粉の数の分布が違っていたのではないかと推測されますが、
上記の方法でうまく対応できたことがスコアの向上につながっているのではないかと思っています。
ProbSpace_official
cczouk様
ProbSpace運営です。
ソリューションの公開ありがとうございました。
公開後一週間が経ちましたが、
チーティングに関する質問はありませんでしたので、順位確定といたします。
この度は、優勝おめでとうございます!