掘り出し物ランキングのスコア計算について
このページでは、ランキングで使用しているスコア計算式について解説します。
何のためのスコア?
平均評価が高いだけだと、評価数が少ない作品が上に来やすくなります。逆に、DL数がとても多い作品は「安定して人気」ですが、掘り出し物が埋もれがちです。
そこでこのスコアは、評価平均、評価数、DL数を合わせて、「まだ知名度は高くないが質が良い作品」を見つけやすくします。
入力データ
dl= dl_count(DL数。多いほど人気)rc= rate_count(評価数。多いほど信頼できる)avg= rate_average_2dp(平均評価 0〜5)
事前の基準値
mu0= ゲームジャンル全体の平均評価(事前集計)m= 20(疑似件数:評価が少ないときの保険)k= 3(事前評価数)d= 100(事前DL数)r0= 30(信頼度の立ち上がり)s= 3000(DL減衰開始の目安)c= 2000(減衰の緩さ)
計算の流れ
1. 評価が少ない作品のブレを抑える(ベイズ平均)
bayes_avg = (mu0 * m + avg) / (m + rc)
評価数が少ないときは「ジャンル平均」に寄せて過大評価を防ぎます。
2. 評価率をなめらかにする(少数サンプル対策)
eval_rate = (rc + k) / (dl + d)
評価数が少なくても極端に上がりすぎないよう補正します。
3. 評価数の信頼度(多いほど信頼できる)
conf = 1 - exp(-rc / r0)
評価数が増えるにつれて信頼度が上がります(最初はゆっくり)。
4. DL数が大きすぎる作品をやや減衰
saturation = 1 / (1 + max(0, dl - s) / c)
大ヒット作品が上位を独占しすぎないようにします。
5. 品質と最終スコア
quality = bayes_avg * conf
final_score = quality * eval_rate * saturation
「評価の高さ × 信頼度 × 掘り出し補正」で最終順位を決めます。
補足
mu0 は事前に集計してデータベースに保存しています。手動更新時は crawl-dlsite update-stats を実行すると最新の mu0 が反映されます。