~第4章~ 意味不明! Eloコンペ 編

(前回までのあらすじ)
hmdhmdはチームマージを経て累計3枚の銀メダルを獲得するも、kaggle masterへの道のりはまだ長そうだと感じていた

次に挑んだのは、Elo Merchant Category Recommendationコンペ、通称Eloコンペです。当然エロいわけではなく、Eloというのはブラジルの会社名です。Eloが収集した顧客の購買データから、顧客のロイヤリティスコアを予測するという内容でした。

このコンペで厄介なのは、データがすべて匿名化されていたことでした。私はデータから色々想像しながら特徴を作るタイプなので、データの意味がわからないことに苦労していました。target=顧客のロイヤリティスコアとは、そもそも何ぞや?ということです。

そんな中で、激強kagglerのradder氏が、一部のデータについてリバースエンジニアリングをしていてド肝を抜かれました。このおかげで、少なくともtargetがどのような意味を持っているのかがわかり、少し特徴を考えやすくなりました。

また、もう1点気にになっていたのは、CVスコアとLBスコアの乖離でした。CV : 3.63に対してLB : 3.68という状態ですが、この0.05の違いはかなり大きな差です。一方で、Adversarial validationを行うと、trainとtestのデータ分布に大きな違いはなさそうだという結果になります。

ということは、publicLBの結果はtestの中でも少し偏ったところからとってきたのでは・・・というのが私の仮説でした(*1)。

そこでLBは諦めて、自分のCVスコアを信じることにしました。
結果・・・最終的に4,129チーム中19位(publicLB:245位から大きくshake up)、金メダルまであと1つ順位が届かず・・・という惜しい結果となりました。

ただ、このコンペで大きな収穫がありました。それは、privateLBで生き残るのがゴールであって、publicLBに惑わされるべきではない、ということです。一見当たり前のように思えますが、どうしてもpublicLBを上げたくなってしまうのが人間の性です。そこをグっとこらえて、trust your CVの精神を思い出すと良いことがあるかもしれません(*2)

次のMalwareコンペは特殊すぎてtrust your CVという話にもなりませんでしたが、さらにその次のPetコンペでも、public500位ぐらい→private20位と、これまた大きくshake upすることができました。

これで、Elo、Malware、Petと立て続けに3枚の銀メダルを獲得しました。が、何度見返しても金色だけは混じっていません。遠い、遠いぞ!kaggle masterへの道のり・・・!

hmdhmdは、
・publicLBに惑わされない術を身につけた!
・銀メダル3枚を獲得し、累計6枚の銀メダルを獲得した!
・「そろそろ金メダルをください」と神に願った!

次回、~最終章~ 時は満ちた! 地震コンペ 編 に続く

*1 LBが全く上がらなかったので、そう思い込んでいただけという可能性もあります

*2 状況によります。publicLBを追及して問題ないケースも、もちろんあると思います

この記事が気に入ったらサポートをしてみませんか?