はじめに
LBスコアが小数点第3位までしか表示されないコンペがあります。そのようなコンペにおいて、消えたLBスコアの小数点第4位以下について気になったことはありませんか?
この記事では、KaggleにおけるLBスコアの小数点第4位以下の仕様や、非表示のスコアを補間する方法について共有します。
「LBスコアの小数点第4位以下」って何のこと?
例えば、『Drawing with LLMs』や『MAP - Charting Student Math Misunderstandings』を始めとしたコンペは、指標の範囲が0~1です。そのような場合に、LBには小数点第3位までが表示され、小数点第4位以下は非表示(ただし内部では計算されている)であることが多いです。
また、コンペ終了後には表示桁数が増える場合があります。例えばMAPコンペでは、終了前は小数点第3位までが表示されていましたが、終了後は小数点第5位までに表示桁数が増えました。
なぜコンペ終了前は表示桁数が制限されているのか
理由としては、参加者の過学習を防ぐためです。Public LBではなく、ローカルCVを重視した取り組みを間接的に促すために表示桁数が制限されています。そのため、コンペ終了後は非表示にする理由がなくなるので、表示桁数が増えます。
稀ではありますが、コンペ終了前に表示桁数が増えた事例があります。
『CMI - Detect Behavior with Sensor Data』では参加者がかなり多くなり、LBの小数点第4位も意味のあるスコア感だったために、Kaggle運営の判断で1桁表示が増えました。
LBスコアの小数点第4位は四捨五入されますか、それとも切り捨てられますか?
実際にディスカッションで質問したところ、「切り捨て」との回答をKaggleスタッフの方から頂きました。
非表示のスコアを補間する方法
SubmissionsタブからPublic Scoreでソートすることができます。表示上は同じスコアでも、小数点第4以下の非表示のスコアも踏まえてソートが行われるため、サブミッションの大小関係の情報は取得することができます。
ただし、非表示含めても全く同じスコアの場合は、サブミッション日時が早い方が上位になります。指標が離散値の場合は注意が必要です。
以上の仕様を踏まえて、件数と並びからそれぞれのサブミッションの小数点第4以下を補間することができます。
以下は一様分布に従うと仮定した場合の補間値です。
例1: 0.947が1件
範囲: 0.947000 ~ 0.947999
補間値: 0.9475 (範囲の中央値)
例2: 0.946が2件
範囲: 0.946000 ~ 0.946999
2件を等分割:
- 1位: 0.946667 (上位1/3地点)
- 2位: 0.946333 (下位1/3地点)
例3: 0.944が3件
範囲: 0.944000 ~ 0.944999
3件を等分割:
- 1位: 0.944750 (3/4地点)
- 2位: 0.944500 (1/2地点)
- 3位: 0.944250 (1/4地点)
一般化:
ベーススコア = S, 件数 = N の場合
補間値 = S + (N-i+1)/(N+1) * 0.001
ここで i = 1,2,...,N (順位)
まとめ
以上、あまり知られていない「LBスコアの小数点第4位以下」の話でした!
この知見は、CV-LBの散布図をPlotする時や、最終提出の選択時などに役に立つことがあります。
以前、この LBの補間機能を活用したサブミッション管理アプリを開発したことがあります。
このLBの補間の話をどこかで共有したかったので、今回記事を執筆させて頂きました。
非常にニッチなトピックにも関わらず、ここまで読んで頂きありがとうございました。


