読者です 読者をやめる 読者になる 読者になる

beatmania IIDX 24 SINOBUZのリザルト統計情報 - スコア相関に基づく譜面分類

概要

本記事ではbeatmania IIDX 24 SINOBUZのリザルトデータを集計し,統計処理を施した結果を報告する.

今回はスコア相関に基づく譜面分類について述べる.

スコア相関に基づく譜面分類

灼熱のスコアを伸ばしたい場合,灼熱以外にどの譜面を練習すれば良いだろうか.直感的には灼熱Pt.2やSnake Stickなどの皿譜面が候補に上がる.これは,灼熱のスコアに求められる要素が,灼熱Pt.2やSnake Stickのそれと類似しているため,練習曲として適しているからである.すなわち,練習曲とはスコアに求められる要素が類似した譜面の集合と考えることができる.

灼熱のスコアを伸ばすためにSnake Stickを練習し,Snake Stickのスコアが伸び,練習の成果として灼熱のスコアも伸びる.練習曲の中ではこのようなサイクルが回るため,スコアに求められる要素が類似している譜面は互いのスコアに強い相関を持つようになると考えられる.

逆に,ある譜面の上達を目標とする場合,その譜面と強い相関を持つ譜面が分かれば,効率の良い練習が出来るのではないだろうか?

以上の事柄をモチベーションとして,本記事ではスコアの相関に基づく譜面分類について述べる.分類結果は,互いのスコアに強い相関を持つ譜面の集合であり,練習曲の選定などに用いることができる.

以降,スコア相関→前処理→譜面分類方法の順に説明する.

スコア相関

下の2つの図は左がAAとBrokenの散布図,右がAAと灼熱のスコアレートの散布図である.データセット前回の記事と同一であり,両譜面にスコアを付けているプレイヤーのみをプロットしている.

f:id:bmani:20170203231121p:plain

AAとBrokenは一般的な鍵盤譜面であり,スコアに求められる要素が近いため,一方のスコアが高ければ他方も高い可能性が高い.結果として,左図のような直線的な分布になる.しかし,灼熱は皿譜面であり,スコアに必要な要素がAAと異なる.そのため,一方のスコアが他方のスコアに与える影響は小さく,右図のような非直線的な分布となる.

このように,スコアに求められる要素の類似した2譜面が作る分布は直線的になると考えられるため,分布がどの程度直線的な関係であるかを評価する指標を用いれば,スコアに求められる要素によって譜面を分類することができる.本記事では,そのような指標として2譜面のスコアレートの相関係数を用いる.これをスコア相関係数と呼ぶことにする.

譜面 x, yのスコア相関係数 r_{x, y}は次の式で求められる.

r_{x, y} = \frac{\sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^n (x_i - \bar{x})^2}\sqrt{\sum_{i=1}^n (y_i - \bar{y})^2}}

ただし, nはプレイヤー数, x_i, y_i i番目のプレイヤーの x, yのスコアレート, \bar{x}, \bar{y} x, yの集計対象プレイヤーの平均スコアレートである.

スコア相関における前処理

上図のプロットを眺めると,AAのスコアレートが80%を超えているのにも関わらず,Brokenのスコアレートがほぼ0%のプレイヤーが存在している.このように,一方の譜面のスコアレートに対して,もう一方のスコアレートが著しく低いリザルトを持つプレイヤーが存在する.これは,HARD・EXH特攻による途中落ちや,STEP UPの復習フォルダ解禁のための即落ちなどがその原因として考えられる.そのようなリザルトは,本来のプレイヤーの実力を正しく反映していないため,統計処理においてノイズとなる.

そこで,途中落ちと考えられるリザルトを取り除くために,スコア相関 r_{x,y}を計算する前に以下の処理を行った*1

  1.  x,yのどちらかでスコアレートの中央値の半分以下のリザルトを持つプレイヤーを除去
  2. 残ったプレイヤー n人の x, yでの順位を出し,順位差が \frac{n}{2}以上であればそのプレイヤーを除去

1は序盤落ちのプレイヤーの除去を意図した処理であり,足切りとしての閾値にスコアレートの中央値の半分を採用している.この閾値は一般的な十段であれば超えられるラインを想定している.AAのスコアレートの中央値は75.8%のため,閾値は37.9%となる.また,灼熱の中央値は60.2%であり,閾値は30.1%となる.

2は足切りスコアを超えた後で落ちてしまったプレイヤーの除去を意図した処理である.この処理は,一方の譜面での順位が高いプレイヤーは,もう一方の譜面でも順位が高いという前提に基づいている.AAの順位が1000人中20位のプレイヤーがBrokenで1000人中700位であれば,何らかの原因により,Brokenで実力通りのプレイができなかったと考えるのが妥当である.順位差の閾値は対象プレイヤーの人数の半分とした.

下の図は,前処理を行なったプロット結果である.赤い丸でプロットされているリザルトをスコア相関の計算に用いる.黒の三角,十字でプロットされているリザルトは,ぞれぞれ前処理1, 2で除去されたリザルトである.

f:id:bmani:20170206153335p:plain

譜面分類

譜面の分類は,類似度をスコア相関係数として,階層型クラスタリングの一つであるWARD法を用いて行なった*2

クラスタリングによって,下の図のような系統樹が得られる.下部で統合される要素ほどより類似していることを示す.

f:id:bmani:20170206205711p:plain

今回,譜面の類似度にはスコア相関係数を用いているため,同じクラスタに属す譜面はスコア相関が高くなる.

結果

譜面分類結果へのリンクを以下に示す.

適当なクラスタ数で区切ったクラスタを赤い四角によって囲っている.クラスタ番号を左から1として,各クラスタに含まれる譜面を下の表に記す.

クラスタ1
A [A] Colors (radio edit) [A] FAKE TIME [A]
LASER CRUSTER [A] PLEASE DON'T GO [A] SCREAM SQUAD [A]
SOLID STATE SQUAD [A] Say YEEEAHH [A] Scripted Connection⇒ A mix [A]
Sense 2007 [A] TROOPERS [A] V [A]
VANESSA [A] fffff [A] gigadelic [H]
gigadelic [A] moon_child [A] one or eight [A]
oratio [A] tripping contact [A] 雪月花 [A]
クラスタ2
#MAGiCVLGiRL_TRVP_B3VTZ [A] AO-1 [A] Colorful Cookie [A]
DIAMOND CROSSING [A] Dances with Snow Fairies [A] Devil's Gear [A]
Dynamite [A] EXUSIA [A] GAIA [A]
Godspeed [A] Gravigazer [A] Hollywood Galaxy(DJ NAGAI Remix) [A]
IMPLANTATION [A] NZM [A] OTENAMI Hurricane [A]
One More Lovely [A] POSSESSION [A] Reflux [A]
SAY BAY [A] SOLID STATE SQUAD† [A] STULTI [A]
SYNC-ANTHEM [A] Super Rush [A] TOGAKUSHI [A]
entelecheia [A] reunion [A] 真 地獄超特急 -HELL or HELL- [A]
焔極OVERKILL [A] 不沈艦CANDY [A] 旋律のドグマ~Miserables~ [A]
クラスタ3
AA [A] Broken [A] Broken Sword [A]
F [A] GOLDEN CROSS [A] Shooting Fireball [A]
TIEFSEE [A] Todestrieb [A] True Blue [A]
ZZ [A] refrain [A] ΕΛΠΙΣ [A]
仮想空間の旅人たち† [A]
クラスタ4
ALBIDA [A] Adularia [A] Ancient Scapes [A]
Beat Radiance† [A] Candy Galy [A] Close the World feat. a☆ru [A]
FIRE FIRE [A] Feel The Beat [A] HADES [A]
Highcharge Divolt [A] Idola [A] Liberation [A]
Little Star [A] M4K3 1T B0UNC3 [A] NEO GENERATOR SEVEN [A]
NINJA IS DEAD IIDX ver. [A] NNRT [A] Nightmare before oversleep [A]
PUNISHER [A] Ristaccia [A] SPECIAL SUMMER CAMPAIGN! [A]
Sounds Of Summer [A] SpaceLand☆TOYBOX [A] Symmetry [A]
The Least 100sec [A] The Sampling Paradise [A] Thunderbolt [A]
WONDER WALKER [A] We're so Happy (P*Light Remix) IIDX ver. [A] invoker [A]
mosaic [A] sakura storm [A] 海神 [A]
夏色DIARY - L.E.D.-G STYLE MIX - [A] 紅牡丹 [A] 紫陽花 -AZISAI- [A]
千年ノ理 [A] 聖人の塔 [A] 九尾狐夜行 [A]
カゴノトリ~弐式~ [A] 電人、暁に斃れる。 [A] それは花火のような恋 [A]
黒髪乱れし修羅となりて [A] めいさいアイドル☆あいむちゃん♪ [A] 即席!脳直★ミュージックシステム [A]
表裏一体!?怪盗いいんちょの悩み [A]
クラスタ5
Bad Maniacs [A] Chrono Diver -PENDULUMs- [A] Close the World feat.a☆ru†LEGGENDARIA [A]
Confiserie [A] Elemental Creation [A] Feel The Beat†LEGGENDARIA [A]
IX [A] MENDES [A] Sigmund†LEGGENDARIA [A]
The Limbo [A] VOX UP [A] Verflucht†LEGGENDARIA [A]
perditus†paradisus [A] quell~the seventh slave~ [A] 冥 [A]
卑弥呼 [A] 疾風迅雷†LEGGENDARIA [A] 天空の夜明け [A]
クラスタ6
Almagest [A] Almagest (HCN Ver.) [A] Ancient Scapes†LEGGENDARIA [A]
Blue Spring Express [A] CHRONO DIVER -NORNIR-† [A] DIAVOLO [A]
Grand Chariot [A] HAERETICUS [A] JOMANDA [A]
KAISER PHOENIX [A] PARADISE LOST [A] Plan 8 [A]
Sigmund [A] Timepiece phase II (CN Ver.) [A] Zirkfied [A]
invoker†LEGGENDARIA [A] 少年A [A] 嘆きの樹 [A]
共鳴遊戯の華 [A] 駅猫のワルツ [A] 煉獄のエルフェリア [A]
超青少年ノ為ノ超多幸ナ超古典的超舞曲† [A]
クラスタ7
3y3s [A] BITTER CHOCOLATE STRIKER [A] BLUE MIRAGE [A]
CODE:1 [revision1.0.1] [A] Despair of ELFERIA [A] Devilz Staircase [A]
EBONY & IVORY [A] Flashes [A] G59 [A]
Hollywood Galaxy [A] Invitation from Mr.C [A] Last Dance [A]
Ludus In Tenebris [A] Monopole. [A] Proof of the existence [A]
Session 9 -Chronicles- [A] Sol Cosine Job 2 [A] StrayedCatz [A]
TOXIC VIBRATION [A] Timepiece phase II [A] Triple Counter [A]
Verflucht [A] X [A] YAKSHA [A]
cinder [A] fallen leaves -IIDX edition- [A] neu [A]
quaver♪ [A] たまゆら [A] 疾風迅雷 [A]
ワルツ第17番 ト短調”大犬のワルツ” [A] トリカゴノ鳳凰 [A] 子供の落書き帳 [A]
少年は空を辿る [A] 狂イ咲ケ焔ノ華 [A] アストライアの双皿 [A]
シュレーディンガーの猫 [A] リリーゼと炎龍レーヴァテイン [A]
クラスタ8
DOMINION [A]
クラスタ9
BLUE DRAGON(雷龍RemixIIDX) [A] DARK LEGACY [A] FANTASTIC THREE [A]
Go Beyond!! [A] INSOMNIA [A] Immortal [A]
Rave*it!! Rave*it!! [A] Valanga [A] eRAseRmOToRpHAntOM [A]
ra'am [A] キャトられ恋はモ~モク [A] 恋する☆宇宙戦争っ!! [A]
轟け!恋のビーンボール!! [A] †渚の小悪魔ラヴリィ~レイディオ†(IIDX EDIT) [A]
クラスタ10
199024club -Re:BounceKiller- [A] BLACK.by X-Cross Fade [A] Red. by Full Metal Jacket [A]
Snake Stick [A] Watch Out Pt.2 [A] 火影 [A]
灼熱 Pt.2 Long Train Running [A] 灼熱Beach Side Bunny [A]
クラスタ11
Fascination MAXX [A] PARANOiA ~HADES~ [A] Thor's Hammer [A]
rage against usual [A] 音楽 [A] ピアノ協奏曲第1番”蠍火” [A]
クラスタ12
Concertino in Blue [A] DAY DREAM [A] ELECTRIC MASSIVE DIVER [A]
Evans [A] ICARUS [A] Innocent Walls [H]
Innocent Walls [A] Konzert V [A] 桜 [A]

考察

クラスタ1は簡単な癖譜面,クラスタ3は純粋な鍵盤譜面,クラスタ5は発狂譜面,クラスタ10は皿譜面のように,スコアに求められる要素を予測できる程度には分類できている.しかし,クラスタ6のDOMINIONやクラスタ9のGo Beyond!!,クラスタ12のEvansのように,分類がうまくいっていないように見える譜面もある.これらの譜面は中盤難であるため,途中落ちのリザルトを適切に除去できていないことが原因であると考えられる.

本記事の結果は,統計的に見てスコアに相関のある譜面をまとめているものであり,譜面の中身は考慮していないことに留意していただきたい.

*1:勿論,この処理によって途中落ちリザルトを正しく完全に取り除ける訳ではない.

*2:クラスタリングの技術的詳細については省略する.