luxのメダロットブログ

ダメージ計算検証ほか

(コラム) 異常値の自動除去

 

この記事の概要

この記事は、データ精査にかかわるコラムです。 ダメージ解析には直接関係しませんので、興味がない方は読み飛ばしていただければと思います。

#1にありますよう、私のアプローチではダメージ計測をほぼ自動化しています。 一方でその計測は必ずしも完璧でなく、諸条件を満たしていないために異常値が出てしまいます。異常値の原因としては下記のようなものがあります。

  - OCR読取ミス
  - 望まない攻撃を入れてしまい脚を壊してしまった
  - 望まない攻撃を入れてしまいデバフを与えてしまった
  - 妨害に遭ってMFオプチカル・グラビティをかけられなかった

f:id:medarotter_lux:20210911232103p:plain

異常値の例(直前に2番機がMFサバイバルで相手1番機の脚を壊した。ツールでは、1番機しか攻撃しない想定なのでその事実を知らず「脚あり」と誤解)

 

異常時除去アルゴリズム

今までは異常値をダメージ計測結果グラフを目で見つけて除外していました。 またその除外も「動画まるまる一本無効」という手段を取っていました。より良い手段としてこのアプローチを入れることにしました。

#3で示した乱数計測結果に基づく異常値判定アルゴリズムを採用しました。 これ\は、(かすり、防御、ヒット)の際はその乱数幅が約7%であろう、クリティカルの際は不定だが20%いくことはなかろうという計測結果を用いたアルゴリズムです。

  1. 計測実績の中央値を得る(median)
  2. その中央値に乱数幅(rate)を考慮した上下限値を得る(range_min = median * (1 - rate), range_max = median * (1 + rate))
  3. 計測実績から上下限域に入る計測結果のみを有効と判断する。

このアプローチによって、データの良否判断まで自動化できました(当然この手段が正しいかはたびたび検証せねばなりませんが)。 この手段は、現在の検証結果をより肯定するものになると同時に、今後の検証の強い武器になります。

f:id:medarotter_lux:20210911234647p:plain

有効値(4色打点)と異常値(黒打点)のダメージ分布

 

今後の進め方

現在、ブログでまとめて報告できる状況でないにしろ、次回のネタ - 攻撃スキルLvがダメージに与える影響 - はわかってきました。 そちらの裏付けデータ取り、ブログ記事作成は順次続けます。

また並行して、耐性(脚部射耐および脚部格耐)、脚部回避、補助スキルLv合計値がダメージに与える影響を解析するための基礎データを取り始めています。 手段は該当記事で説明しますが、この異常値除去アルゴリズムが計測、解析の効率化に貢献しています。