ガチマッチの分析

概要

まずは分析用のデータを集めなければいけないので、statinkさんのデータを収集するところから始まりました。

APIを叩けば一度に最大50件のデータが取得できます。

以下のようなコードを叩けば50件あたりおよそ2MBのJSONが取得できます。

<?php
$url = "https://stat.ink/api/v2/battle?older_than=1000000";
$json = @file_get_contents($url);
?>

ver4.0.0以降、およそ90万件のデータがあるのでそれを全てダウンロードします。

サーバに負荷がかからないようにリクエスト回数を抑えていたので全部ダウンロードするのにおよそ一日かかりました。

全部で31GBのファイルなのですが、これをこのまま解析していたら時間がかかって仕方ないので、まずは必要なデータだけ抜き出します。

データ抽出

31GBのファイルから必要なものを抽出するコードはPythonで実装しました。

抜き出したものは以下のものです。

  • リザルトID
  • マップID
  • ルール
  • ウデマエ帯
  • 平均ガチパワー
  • 試合時間
  • カウント

これらのデータをガチマッチだけ抽出したところ、全部で22万件ほどになり容量も12MBまで小さくすることができました。

これならRAR形式で圧縮すれば2MBほどのファイルになるので配布も十分可能です。。

データ解析

コードを失うのがいやなのでGitHubにプッシュしておきました。

extract.pyは動作がすごく遅く、90万件のデータを解析するのに5分くらいかかります。

analyze.pyは画像出力自体は遅いものの、それ以外はそこそこ速いので10秒ちょっとでデータを解析してくれます。

解析結果

ガチホコバトルの結果をまとめたので記事を更新しました。

[ガチホコバトル] バッテラストリート

Def[%]

延長突入時にこのカウントでリードしていた場合に、相手のホコを止めることに成功して勝利することができる確率です。

言い換えると、「このカウントだけ進まれるまでにホコ持ちを一回倒すことができる確率」と言い換えても良いかもしれません。

このカウントはあくまで平均的なものなので、ホコが自陣ゴール近くにあれば確率は下がりますし、ホコが相手ゴール近くにあれば確率は上がります。

基本的にはカウントが進むにつれて自陣リスポーン地点に近くなるので止められる確率は高くなります。

バッテラストリートはホコが進みやすいことで有名なステージですが、延長突入時にリードしていればカウント60でも勝率が85%あることがわかります。

一般的にどこのステージでもDef[%]は80%を超えており、これはつまりホコを一回止めるだけであれば難しくないことを意味しています。

Win[%]

そのカウントを維持したまま勝利できる確率です。

都合上、勝率60%以下は図示していません。

例えばバッテラストリートはカウント75でのDef[%]は95%近くありますが、Win[%]は63%くらいしかありません。

つまりこれは、残り時間が僅かであればカウント75を維持して勝利できる確率は高いが、最初の1分でカウントを75すすめたとしても残りの4分間は全く安心できないことを意味しています。

まとめ

とりあえずガチホコバトルだけまとめ記事に反映させました。

防衛率と勝率の詳しい内容は以下の記事に書いてあります。

他にもいろいろな確率や期待値を計算できる思うので、よりよい案や既存の公式があれば教えてください。

シェアする