# 「beatmania IIDX」における譜面の傾向、難易度によるクラスタリング
## 目的
「beatmania IIDX」において、ある楽曲のスコアを更新したときに、その楽曲と音符の配置傾向が似ている曲、同じような難易度の曲が推薦されるシステムがあると、プレーヤーのスコア更新の効率が上がると考えた。よって、今回はその前段階として、同譜面傾向、同難易度帯の楽曲同士を特徴に応じてグループ化していくことを目的とする。
## データの収集、処理
### 使用したデータとその整理
2017/12/21から2018/11/6まで稼働したバージョンであるbeatmania IIDX 25 CANNON BALLERSと、2017/11/7から2019/10/15まで稼働したbeatmania IIDX 26 Rootageにて収録されたLEVEL 12の楽曲57曲のデータを集めた。
主に収集したデータは以下のものである。
* bpm:音楽では曲のテンポを表す単位。Beats Per Minuteの略で、1分あたりの4分音符の数をいう。
* 小節数:楽譜の区分の総数、基本4分音符が4回鳴る長さを1小節とした。(※1)
* 総ノーツ数:1楽曲中に降ってくるノーツの総数
* スクラッチ数:1楽曲中に降ってくる赤ノーツの総数
* CN数:1楽曲中に降ってくるCNの総数
* BSS数:1楽曲中に降ってくるBSSの総数
* 皆伝平均スコア:現行バージョンにおいてbeatmania IIDXにおける実力を評価する段位システムにおいて、最高段位を取得したプレイヤー中の平均のスコア
* 全国トップスコア:現行バージョンが稼働している期間(2020/10/28以降)における世界記録スコア
(※1)拍子が4分の4拍子でない曲は4分の4拍子としたときの小節数に換算した。また、途中でbpm変化がある曲に関しては、bpmが半分、もしくは倍速になる曲は元のbpmに換算して小節数を計算しなおしたほか、変化が不規則なものに関しては別の指標が必要となるため今回は割愛した。
これらのデータを元に、譜面の特徴を示す以下の変数を設定した。
* bpm
* Density:譜面のノーツの時間密度
* gimmick:全ノーツ中のギミックの割合
* AverageRate:皆伝平均スコアが満点に比べてどれぐらい獲得しているのかを示す割合。高いほどその譜面が簡単であることを示す。
* TopRate:全国TOPスコアが満点に比べてどれぐらい獲得しているのかを示す割合
それぞれの計算方法は以下に示す通り。
* Length(曲の長さ) = 60×4×小節数/bpm
* Density = 総ノーツ数/Length
* gimmick = (スクラッチ数+(CN数+BSS数)×2)/総ノーツ数 (※2)
* AverageRate = (皆伝平均スコア)/(総ノーツ数×2) (※3)
* TopRate = (全国トップスコア)/(総ノーツ数×2) (※3)
(※2) CNとBSSは始点と終点の2つに判定があるため、2ノーツ分の扱いとなる。
(※3) 1ノーツあたり2点が最高点数のため、満点は総ノーツ数の2倍となる。
### データの処理
データの整理によって得られた各変数の散布図を以下に示す。

この散布図よりAverageRateとTopRateには高い相関関係がみられることがわかる。また、この各変数のデータセットごとの箱ひげ図を以下に示す。

この箱ひげ図において、外れ値は+で表現される。データセットと照らし合わせるとbpmの外れ値は400,300,255の3つであり、Densityの外れ値は9.70である。これらの外れ値について検討する。
まず、bpm400の楽曲「ONIGOROSHI」、300の楽曲「The Rebellion of Sequencer」はbpm自体は速いが、ほかの楽曲が16分音符主体の譜面構成になっているのに対し、これらの楽曲は8分音符主体の譜面構成になっている。よって、bpmが倍になっていると判断し、これらのbpmをそれぞれ200、150として計算しなおす。それに対し、bpm255の楽曲「255」は、8分音符と16分音符が混在しているため、このまま用いる。Density9.70の楽曲「The Chase」は、スクラッチ主体の楽曲であり、1レーンのみを多用するため密度が小さくなるので、このデータは譜面の個性としてこのまま用いる。
また、各データのスケールが異なっていることがわかる。このスケールの違いがデータ間の距離に反映されることを防ぐために各変数を正規化し、同スケールで比較する必要がある。
これらの外れ値の処理、正規化をデータセットに施した後の散布図、箱ひげ図を以下に示す。


正規化され、同スケールとなっていることが箱ひげ図から判断できる。また、外れ値の検討については、Gimmickに関しては、その譜面の個性、AverageRate、TopRateはその譜面の難しさに関する個性であるとし、このまま用いることとする。
また、AverageRateとTopRateには高い相関関係がみられる。どちらも高いほどその曲が簡単であることを示す指標であるため、そのような結果が生じてしまう。これを同時に採用した理由として、譜面が局所的に難しいために満点に近い点数が取りづらくなり、AverageRateが高くなるのに対しTopRateが低くなる関係性のような、Densityなどの変数では判断できない譜面の傾向を表現するためである。
## 検証する仮説とその分析法
今回検討する仮説は、同譜面傾向、同難易度帯にある曲同士がこの各変数によって分類されるこいうことである。スコアが伸びる曲を推薦する目的を考慮すると、例えばbpmが異なっていても同じ難易度帯であればグループ化されてあるとよい。
この検証に用いる分析法として、クラスタ分析の階層クラスタリングを用いる。ここで、データ間の距離とクラスタ間の距離を以下の組み合わせで計算する。
1. ユークリッド距離+群平均法
2. ユークリッド距離+最長距離法
3. マンハッタン距離+群平均法
4. マンハッタン距離+最長距離法
これらのクラスタの評価として、客観的な判断材料として凝集係数を用いる。この値は基本的に、1に近いほどクラスタ構造が明確であり、グループ分けがうまく出来ていると判断できる。
## 分析結果
### デンドログラム
#### 1.ユークリッド距離+群平均法

#### 2.ユークリッド距離+最長距離法

#### 3.マンハッタン距離+群平均法

#### 4.マンハッタン距離+最長距離法

### 凝集係数
| ユークリッド距離+群平均法 | ユークリッド距離+最長距離法 | マンハッタン距離+群平均法 | マンハッタン距離+最長距離法 |
| -------- | -------- | -------- | -------- |
| 0.7519 | 0.7675 | 0.7528 | 0.7890 |
## 考察
### 分析結果の考察
凝集係数の大きさより、マンハッタン距離+最長距離法によるクラスタリングが最もうまくグループ分けができたといえる。また、本来の目的より、できるだけクラスタが分散されればすべての曲に対してその曲に応じた類似の楽曲を多く提案できることを考慮すると、デンドログラムから判断して最長距離法、マンハッタン距離のほうが分類できているので、適していると考えられる。
### マンハッタン距離+最長距離法のクラスタ分割
マンハッタン距離+最長距離法を用いて求めたデンドロビウムにて、以下の図のように10個のクラスタに分割し、それぞれのクラスタについて譜面を参考にしながら特徴づけを行った。

* **Cluster1:最難関総合譜面**
X-DEN
* **Cluster2:低密度+スクラッチ**
The Chase
* **Cluster3:スクラッチメイン**
Red. by Jack Trance,Level One
* **Cluster4:ギミック入り局所難系、鍵盤系高難易度**
Unbelief,Mächö Mönky,Xlø,The Rebellion of Sequencer,LOST TECHNOLOGIE,EMERALDAS,Carmina
* **Cluster5:高密度鍵盤系**
Initiation,DEATH†ZIGOQ~怒りの高速爆走野郎~
* **Cluster6:高bpm系譜面**
255,Antigravity,金野火織の金色提言,voltississimo
* **Cluster7:局所難系鍵盤譜面**
東京神話,シムルグの目覚め,DropZ-Line-,NITROUS CANNON,Trill auf G
* **Cluster8:ギミック系個人差譜面**
最小三倍完全数,Please Welcome Mr.C,Papilio ulysses,Xperanza,ONIGOROSHI
* **Cluster9:鍵盤系中難易度譜面**
神謳 -RESONANCE-,AA -rebuild-,GENE,Drastic Dramatic,DRUNK MONKY,KILL EACH OTHER,HARD BRAIN,Dr.Chemical & Killing Machine,dAuntl3ss,Slipstream,Boomy and The Boost,Life Is A Game ft.DD"ナカタ"Metal,DEADHEAT,ANCHOR,Illusionary Waterlily,THE DAY OF JUBILATIONS,Painful fate,お菓子の王国,GO OVER WITH GLARE -ROOTAGE 26-,抱きしめてモナムール,Catch Our Fire!
* **Cluster10:鍵盤系低難易度譜面**
Raspberry Railgun,Persephone,Rampage,Visterhv,Arca,Carry Me Away,encounter,Lethal Weapon,L.F.O
各クラスタに対し譜面の印象から特徴づけができたことからも、譜面や難易度傾向に応じたクラスタ形成ができたことが確認できた。
## 問題点と今後の課題
グループ分けは達成したが、各曲ごとで考えると不自然なグループに属する楽曲もある。例として、Cluster10に属するVisterhv,Lethal Weapon,L.F.Oは、この分類でいう中難易度あたりに属する楽曲であるにも関わらずCluster10に分類された。この理由としては、Visterhv,L.F.Oは楽曲の特徴という面で、Lethal Weaponは途中でbpmが半分になる譜面であり、視覚的に難しいため密度が抑えられているという面で、両者ともに密度に偏りが見られ、実際の難易度よりも難易度が易しいと判断されることが原因として挙げられる。よって、これらを適切に判定するための変数をさらに追加することが必要である。この指標によって、今回分析の対象外としたbpm変化曲に関しても分析の対象となるようさらに改良できそうである。新たな指標としては、公式に設定されている以下のものが例として挙げられる。
* PEAK
* CHORD
* SOF-LAN
この取得方法が今のところ不明なため、これらを自動取得し計算するという過程は今後の課題としたい。また、beatmania IIDXに収録されている楽曲は、LEVEL12だけでも383譜面存在しているので、これらすべてを今回の基準で分類したときに、特徴どおりに分類できるかも試せそうである。ただし、そのためのデータセットの作成が相当な手間となるため、これらを簡単に取得する方法を模索していきたい。
**早く譜面データ公式で公開して!!**