by Prank
Ratingについて
UtageSocialではゲームのStats(成績)を集計し、計算式に基いたプレイヤーの総合評価(Rating)を表示する機能を実装しています。
Ratingは数値で表され、1.0を基準に数値が高ければ高い評価、数値が低ければ低い評価となります。
変更内容
宴1杯目ではHLTVの古いRating式を用いて算出していましたが、平均値を計算しないなど様々な問題があります。
今回のアップデートで宴独自の計算式を採用し、問題の解決と品質の向上を行います。
計算式は新しいHLTVの評価方式を参考に開発されています。
主な変更点は以下のとおりです。
- 平均値が計算されていない問題の解決
- 1.0が平均になっていない問題の解決
- Rating算出に用いる要素数の拡大
評価方式
新Rating式では以下の6つの要素用いて算出しています。
- KPR( Kills Per Round )
1ラウンドあたりのキル数。 - SPR( Survival Per Round )
1ラウンドあたりの生存数。 - RMK( Rounds wit Multiple Kills )
1ラウンドあたりの複数キル評価。
複数killが多いほど評価が高くなるように重み付けされます。 - DPR( Damage per Round )
ゲーム内ではADRに相当するもの。
1ラウンドあたりの与えたダメージ。
HE グレネード等のダメージも含まれます。 - APR( Assist Per Round )
1ラウンドあたりのアシスト数。
Flashbangによるアシストも含まれます。 - WKR( Won with Kills Round )
1ラウンドあたりの勝利キル。
キル数について、勝利したラウンドが多いほど高い評価が得られます。
階級を問わず全プレイヤーについて各要素を計算し、0-1正規化(最小を0,最大を1として変換)しています。
正規化後、各要素の平均値を1.0とした対象プレイヤーの偏差を計算します。
各要素から算出した偏差の平均を最終的なRatingとして出力しています。
品質
宴1杯目の評価結果
下の画像は宴1杯目のデータを用いた時のRatingと各要素のグラフです。

※左がRatingの低いプレイヤー、右がRatingの高いプレイヤー
※中央の青いグラフがRating値(100倍)、その他のグラフは計算に用いた6つの要素
基本的にRatingと6つの要素は比例の関係にあり、式に基づいて想定していたRating値が得られました。
各要素の振幅が大きいのは1つの要素だけに依存せず、他の要素も平等に評価している為です。
Ratingの振幅がやや少ないのが今後の改善点としていますが、式に基づいて正確に評価します。
評価の”正しさ”について
新しいRatingシステムは計算式に基づいてプレイヤーを評価します。
これはプレイヤーのスキル(上手さ)を表す一つのファクターとなりますが、全てではありません。
例えばCS:GOでは戦術による役割等でStats自体に偏りが生じる可能性が高く、新しいRatingシステムでは考慮されていません。
例えば宴ではチームを階級で振り分けしていますが、新しいRatingシステムでは考慮されていません。
下の階級のプレイヤーが上の階級のプレイヤーより高いRating値を得られる状況も容易に生まれます。
これは計算式がCS:GOサーバーから得られるStatsのみに依存している事が原因で、今後改善できれば良いと考えています。
(新しいRatingについて、あるプレイヤーと比較する場合、同じ階級のプレイヤーと比較する事で大まかな品質が得られます)
今後のアップデートでより正しい評価が出来るよう努めてまいりますが、開発者は統計学を専門としておらず、なかなか良い改善プランが立たない状況です。
もし皆様CS:GOプレイヤーの中に統計学や統計処理に詳しい方、具体的な改善のアイディアのある方などいらっしゃいましたら
info@utage-csgo.com
までご連絡ください。