エンタメデータラボです。
これから現在公開しているTierの評価方法について紹介します。
こちらが公開しているTierになります。
最初に断っておきますが、このTierはプレイに基づいて作成されているわけではありません。
また、MOBAにおいてTierは参考程度に捉えていただいたほうがいいということも付け加えておきます。
それでは始めていきます。
評価資料
評価には下記サイトを参考にしています。
もし他にも参考になりそうな資料などありましたら、教えていただけると助かります。
簡単な評価概要
評価には2つの項目があります。
- 勝率(そのポケモンがいた試合で勝つ確率)
- 選択率(そのポケモンが選ばれる確率)
この二つの要素を掛け合わせて各ポケモンのTierを算出しています。
つまり、頻繁に試合に選ばれ、勝率も高いポケモンのパフォーマンスは高いと考えています。
これが簡単な評価概要になります。
詳細な評価概要
評価方法
評価にはz-スコアと呼ばれる統計手法を用いています。
このz-スコアは、各ポケモンのパフォーマンス(禁止率、選択率、勝率)が平均からどの程度離れているかを数値で示すことができます。
これにより、各ポケモンが平均的なパフォーマンスと比べてどれだけ優れているか、または劣っているかを定量的に評価できます。
式で示すと以下のようになります。
X :各ポケモンのパフォーマンス(勝率や選択率)値
μ :そのパフォーマンス指標の全ポケモンにおける平均値
σ :そのパフォーマンス指標の標準偏差
この式をもとに、勝率、選択率それぞれz-スコアを算出します。
次にそれぞれのz-スコアに重み付けをし、それらを足し合わせます。
重みは以下のように設定しました。
勝率はポケモンのパフォーマンスに最も直接的な影響を与えるため、その重みを0.6としました。
選択率は勝率ほど直接的なパフォーマンスの指標ではありません。そのため、重みは勝率よりも低く設定しました。
相互作用の負の重みは、選択率が高いポケモンが必ずしも勝率が高いわけではないことを考慮して導入しました。この要素は、単に人気のあるポケモンが高い評価を受けるのを防ぎ、実際のパフォーマンスに基づいた公正な評価になるようにしました。
これらの要素を組み合わせて計算された総合値に基づき、ポケモンは『S+』から『C』までのランクに分類されます。このプロセスにより、各ポケモンのパフォーマンスをより正確に反映することが可能となります。
これがTierの詳細な評価方法になります。
データ抽出について
データ抽出にはPythonというプログラミング言語を用いています。
使用した主なライブラリは下記になります。
- Pandas
- DrissionPage
- BeautifulSoup
DrissionPageを使用してサイトをスクレイピングしてデータを取得し、BeautifulSoupを利用して、取得したWebページから必要なデータを解析し、適切な形式に整形しています。
計算にはPandasを使用しています。データのクリーニング、変換、およびz-スコア計算などの操作が含まれます。
実装したコードは公開していますので、興味がある方は覗いてみてください。
最後に
現在のアプローチは、統計的な手法を用いてポケモンのパフォーマンスを定量的に評価するようにしていますが、まだ未完成であり、試行錯誤の最中です。
海外の試合データなども評価に加えるなどして、ブラッシュアップしていきたいと思います。
また、統計に関してもまだ学び始めたばかりなので、より深い知識と理解を得るために継続的に勉強を進めていきたいと思います。
最終的な目標として、このTierはリアルタイムで更新されるWebアプリとして構築できればと思っているので、そこを目指して頑張ります。
皆さんにとってより有益になるように工夫していきますので、これからも引き続きよろしくお願いします。
コメント
コメント一覧 (1件)
[…] 【ユナイト版】Tierの評価方法について-Ver.1 2023年11月26日 […]