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