これから実装されるウマ娘を機械学習で予想してみる

# 概要

ウマ娘のリリース前に、「<a href = "https://qiita.com/ShotaOki/items/635d0f861c7671ee31e3">ウマ娘のリセマラランキングを機械学習で予想してみる</a>」という記事を書きました。

リリース前に予想したものが概ね当たっていたため、予想の手順を振り返ります。
また、同じ手順で、未実装のウマ娘に対して以下のことを予想します。

- 星1ウマ娘の予想
- 強く設定されそうなウマ娘の予想

## 以前の記事はどう予想したのか

以下の方針を立てて、実際の競走馬の成績＆アニメ1期終了後の人気投票の結果を分析しました。

- 「勝ちきれないことが個性」の競走馬は、やや低い性能になるはずだ。
- 人気の高い競走馬が集まっている成績傾向は、イベント特効や強さの点で、やや有利になるはずだ。

解析に使ったツールはpythonとscikit-learn、方法はクラスタリングです。
競走馬の成績はnetkeibaさん、人気投票の結果はウマ娘攻略まとめ速報さんのアンケート結果を参照しました。

**勝ちきれないことが個性の馬**

ナイスネイチャは有馬記念3年連続3着の記録がよく知られており、それが個性になっています。

![nature_screen_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/7076eea5-09b4-0a72-6ec1-8e50e5dc11a9.png)

ただ、ナイスネイチャの競走馬としての成績は優秀そのものです。

|名前|生涯獲得賞金|出走数|うち1着|うち3着以内|主な勝利レース|
|:--|:--|:--|:--|:--|:--|
|ナイスネイチャ|6億1918万円|41|7（17%）|21（51%）|高松宮杯（勝利当時はG2）|
|キングヘイロー|5億0026万円|27|6（22%）|14（51%）|高松宮記念（勝利当時はG1）|

ナイスネイチャが強すぎるとキャラ崩壊になりますので、やや抑えた性能になります。
競馬を元にしたゲームですので、似た成績や脚質の馬は同じようなステータスになります。

![relation.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/5ac0debe-ea24-048a-e058-cdb5f410c11e.png)

ナイスネイチャとの類似度から、実装後のウマ娘のステータスを予想することができると考えました。

### リリース前に予想したランキング

予想した結果、初期実装されるキャラクター（25頭）を、以下のように分類しました

|分類区分|頭数|
|:--|:--|
|冷遇される（Aランク、Bランク）|8頭|
|優遇される（SSランク）|5頭|
|どちらでもない（Sランク）|12頭|

### 冷遇される、ゲーム内の性能が不利になる

**リリース前の予想：ゲーム内の性能的に不利になる馬**

競走馬の成績から、冷遇されると予想した馬は以下の8頭です。

![a_rank_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/428e8255-ed93-3298-defc-484cd435af32.png)

**結果：ゲーム内の性能的に不利になる馬**

実際にリリースされたゲームでは、8人が星1（最も初期レアリティの低いキャラクター）として実装されました。

![start_1_list.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/4df24a34-e36e-f750-29b3-08568070e35d.png)

予想とほとんど一致しています。

### 優遇される、ゲーム内の性能は有利になる

**リリース前の予想：優遇される馬**

競走馬の成績とアニメ後の人気投票の結果から、優遇されると予想した馬は以下の5頭です。

![ss_rank.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/0a47fcb6-e534-5ee1-5a4d-ff2c294ef3cd.png)

**結果：対人戦で優遇される馬**

ゲーム内の対人戦（チーム競技場）では、200万人のアクティブユーザーがランキング形式で競争しています。
攻略サイトでは、その対人戦のトッププレイヤー（全体ランキング上位100人）が、どのキャラクターを使っているのかを定期的に集計しています。以下が、それぞれの距離で最も採用されているウマ娘です。
参考：<a href = "https://gamewith.jp/uma-musume/article/show/258347">GameWith チーム競技場使用率まとめ(5/7)</a>

![team_match.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/3e3f6465-ad3e-e9e4-6525-2a121f0e44cf.png)

新規実装で予想がないミホノブルボンを除けば、予想とそれなりに重なっています。
画像にはありませんが、グラスワンダーの採用率はマイルで2位でした。

**結果：イベントで優遇される馬**

最初のイベント（キミの夢へと走り出せ）では、一部のキャラクターに獲得イベントポイントの補正がつきました。
初期実装されていたキャラクターのうち、補正がついたキャラは4人です。

![event.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/3210d404-80c2-3d03-8876-40296d4177a6.png)

スペシャルウィーク、オグリキャップに高いイベント補正がつきました。
グラスワンダー、ゴールドシップ、ウオッカについても、早い段階のイベントで高い補正がつくことが予想されます。

# 予想の範囲を実装予定のキャラクター全体に広げる

競走馬の成績や人気投票から予測した結果と、ゲーム内の性能は概ね対応しているように見えます。
解析の対象を、まだ育成対象になっていないキャラまで広げて予想します。

解析の方法は前回と同じ、クラスタリング（AffinityPropagation）です。
K-Meansなどの他のクラスタリング方法と比べると、

- クラスタの分割数を自動で計算してくれる
- 初期状態、初期化乱数の影響を受けにくい

といった特徴があるのですが、クラスタリングである都合上、「どのくらい似ていれば同じグループだと判定されるのか」の閾値は対象データによって変わります。ですので、対象データが増えることでグループ分けが変わることがあります。

## 予想の方法

前回の記事と同じく、以下のスクリプトを実行します。
ロジックは前回の記事をご参照ください。

```python:実行するスクリプト
import pandas as pd
from sklearn.cluster import AffinityPropagation
from sklearn.preprocessing import MinMaxScaler

def main(file_name):
    # CSVからデータを読み込む
    df = pd.read_csv(file_name, index_col=0)

    # 正規化のためのノーマライザを取得
    normalizer = MinMaxScaler()

    # AffinityPropagationでクラスタリングする（初期化乱数は固定する）
    clustering = AffinityPropagation(random_state=5)
    cluster = clustering.fit_predict(normalizer.fit_transform(df))

    # クラスタリングした結果を格納
    # クラスターごとに所属するキャラクタの名前を一覧する
    cluster_list = {}
    for i, c in enumerate(cluster):
        key = str(c)
        if not (key in cluster_list):
            cluster_list[key] = []
        cluster_list[key].append(df.index[i])

    print(cluster_list)
```

解析対象のデータは以下の通りです。

<details><summary>解析対象のデータ（クリックで開きます）</summary><div>

データの各項目は以下の通りです。

- 賞金額（賞金の総額です。今回は物価の変動は考慮しません）
- G1勝数（最もグレードの高いレースに勝利した数です。ダート、海外を含みます）
- 勝数（レースで1位を取った数です）
- 着内（レースで3位よりも高い順位を取った数です）
- 出走数（レースに出た数です）
- 芝適正（netkeibaで「ダートよりも芝に向いている」と投票された割合です）
- 距離適正（netkeibaで「長距離よりも短距離に向いている」と投票された割合です）
- 重馬場（netkeibaで「雨で状態の悪くなったコースでも強い」と投票された割合です）
- 脚質（netkeibaで「最初からペースを上げるウマだ」と投票された割合です）

|名前|賞金額|G1勝数|勝数|着内|出走数|芝適正|距離適性|重馬場|脚質|
|:--|:--|:--|:--|:--|:--|:--|:--|:--|:--|
|ゴールドシップ|13億9776万円|6|13|18|28|96%|14%|88%|8%|
|ウオッカ|13億0487万円|7|10|18|26|94%|53%|41%|28%|
|スペシャルウィーク|10億9262万円|4|10|16|17|96%|18%|67%|8%|
|メジロマックイーン|9億9810万円|4|12|19|21|92%|7%|89%|91%|
|オグリキャップ|8億8830万円|4|22|29|32|69%|52%|82%|23%|
|エアグルーヴ|8億2196万円|2|9|17|19|97%|47%|50%|43%|
|マヤノトップガン|8億1039万円|4|8|17|21|92%|8%|44%|53%|
|ダイワスカーレット|7億8668万円|4|8|12|12|89%|51%|63%|95%|
|グラスワンダー|6億9164万円|4|9|10|15|93%|50%|60%|17%|
|シンボリルドルフ|6億8482万円|7|13|15|16|95%|27%|75%|82%|
|ライスシャワー|6億6686万円|3|6|13|25|98%|4%|65%|66%|
|ナイスネイチャ|6億1918万円|0|7|21|41|95%|38%|54%|24%|
|タイキシャトル|6億1548万円|5|11|13|13|69%|92%|92%|90%|
|トウカイテイオー|6億0470万円|4|9|9|12|98%|44%|60%|65%|
|スーパークリーク|5億5610万円|3|8|12|16|96%|7%|75%|78%|
|サクラバクシンオー|5億1549万円|2|11|14|21|93%|95%|46%|94%|
|キングヘイロー|5億0026万円|1|6|14|27|89%|65%|50%|17%|
|メジロライアン|4億8693万円|1|7|14|19|94%|43%|77%|19%|
|サイレンススズカ|4億5598万円|1|9|10|16|96%|50%|57%|99%|
|エルコンドルパサー|3億7607万円|3|8|11|11|62%|45%|91%|82%|
|ウイニングチケット|3億7177万円|1|6|9|14|97%|44%|49%|10%|
|マチカネフクキタル|3億7024万円|1|6|11|22|91%|36%|41%|10%|
|アグネスタキオン|2億2208万円|1|4|4|4|94%|50%|71%|48%|
|マルゼンスキー|7660万円|0|8|8|8|80%|50%|79%|94%|
|ハルウララ|112万円|0|0|12|113|19%|81%|35%|34%|
|アイネスフウジン |2億3600万円|2|4|7|8|94%|47%|50%|98%|
|アグネスデジタル |5億4562万円|6|12|21|32|50%|59%|90%|13%|
|アドマイヤベガ |2億9060万円|1|4|5|8|95%|48%|37%|7%|
|イクノディクタス |5億2660万円|0|9|22|51|94%|49%|75%|30%|
|イナリワン |4億0430万円|3|3|5|11|68%|13%|71%|19%|
|エアシャカール |5億4505万円|2|4|11|20|97%|37%|41%|10%|
|エイシンフラッシュ |7億5607万円|2|6|16|27|95%|38%|69%|21%|
|カレンチャン |4億4906万円|2|9|13|18|86%|95%|61%|88%|
|カワカミプリンセス |3億5089万円|2|5|9|17|93%|43%|66%|29%|
|キタサンブラック |18億7684万円|7|12|18|20|98%|10%|83%|98%|
|ゴールドシチー |1億7588万円|0|3|10|20|98%|44%|43%|23%|
|サクラチヨノオー |2億0890万円|2|5|7|10|85%|44%|44%|83%|
|サトノダイヤモンド |8億6512万円|2|8|12|18|97%|27%|64%|39%|
|シーキングザパール |4億7414万円|2|8|13|19|88%|98%|33%|11%|
|シリウスシンボリ |1億0870万円|0|4|9|22|88%|19%|78%|30%|
|シンコウウインディ |1億8844万円|1|5|9|17|5%|64%|80%|38%|
|スイープトウショウ |7億4482万円|3|8|14|24|94%|52%|44%|3%|
|スマートファルコン |9億9073万円|6|23|28|34|10%|52%|75%|94%|
|セイウンスカイ |6億1028万円|2|7|9|13|99%|12%|61%|99%|
|ゼンノロブロイ |11億1560万円|3|7|17|20|94%|44%|60%|50%|
|ダイタクヘリオス |6億8320万円|2|10|17|35|95%|82%|57%|96%|
|タマモクロス |4億8967万円|3|9|14|18|92%|22%|69%|18%|
|ツインターボ |1億8398万円|0|6|8|33|94%|50%|57%|97%|
|テイエムオペラオー |18億3518万円|7|14|23|26|93%|13%|89%|26%|
|トーセンジョーダン |7億0506万円|1|9|15|30|94%|37%|54%|70%|
|ナカヤマフェスタ |2億9324万円|1|5|8|15|94%|42%|70%|24%|
|ナリタタイシン |3億5170万円|1|4|11|15|98%|44%|43%|3%|
|ナリタブライアン |9億4742万円|5|12|16|21|94%|22%|71%|21%|
|ニシノフラワー |4億3590万円|3|7|11|16|94%|94%|42%|61%|
|バンブーメモリー |5億0716万円|2|8|20|39|92%|92%|63%|17%|
|ビコーペガサス |3億5785万円|0|4|12|27|85%|94%|42%|7%|
|ヒシアケボノ |3億2426万円|1|6|13|30|94%|98%|64%|94%|
|ヒシアマゾン |6億9582万円|2|10|15|20|91%|48%|64%|6%|
|ビワハヤヒデ |8億1769万円|3|10|15|16|96%|21%|73%|92%|
|ファインモーション |4億9451万円|2|8|11|15|94%|51%|39%|70%|
|フジキセキ |1億2965万円|1|4|4|4|86%|54%|75%|75%|
|マーベラスサンデー |6億0686万円|1|10|13|15|91%|42%|60%|28%|
|マチカネタンホイザ |5億0720万円|0|8|12|32|91%|29%|48%|21%|
|マンハッタンカフェ |5億2283万円|3|6|7|12|97%|6%|39%|18%|
|ミスターシービー |3億9080万円|4|8|11|14|96%|40%|75%|4%|
|ミホノブルボン |4億3730万円|3|7|8|8|94%|56%|86%|98%|
|メイショウドトウ |9億2133万円|1|10|20|27|92%|44%|71%|80%|
|メジロアルダン |2億4130万円|0|4|9|14|91%|42%|58%|69%|
|メジロドーベル |7億3342万円|5|10|14|21|97%|50%|73%|20%|
|メジロパーマー |5億2785万円|2|9|16|38|93%|18%|69%|99%|
|ヤエノムテキ |5億1830万円|2|8|15|23|83%|50%|49%|52%|
|ユキノビジン |1億5900万円|0|4|6|8|85%|54%|49%|85%|

</div></details>

実行して、以下のような結果を得ました。

![script_result.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/233180/82a33caa-c3f1-e0b6-ad52-8e1dae37ba58.png)

アニメ1期に出ていないキャラクターも多いため、人気投票の結果から予想することができません。
前回の予想でSSランクだった競走馬が多く含まれるグループ＝今後の実装で優遇されるグループだと考えます。

また、ナイスネイチャが所属するグループ＝初期レアリティの低くなるグループだと考えます。

**予想の結果：優遇されるウマ娘**

|グループ|名前|備考|
|:--|:--|:--|
|0|オグリキャップ|実装済（前回予想：SS）|
|0|アグネスデジタル|-|
|9|ゴールドシップ|実装済（前回予想：SS）|
|9|ウオッカ|実装済（前回予想：SS）|
|9|スペシャルウィーク|実装済（前回予想：SS）|
|9|テイエムオペラオー|実装済（前回予想なし）|
|9|ナリタブライアン|-|
|9|メジロドーベル|-|

**予想の結果：初期レアリティの低くなるウマ娘**

|グループ|名前|備考|
|:--|:--|:--|
|2|ナイスネイチャ|実装済（前回予想：A）|
|2|キングヘイロー|実装済（前回予想：A）|
|2|イクノディクタス|-|
|2|シーキングザパール|-|
|2|スイープトウショウ|-|
|2|バンブーメモリー|-|
|2|ビコーペガサス|-|
|2|ヒシアマゾン|-|

**予想の結果：判断の難しいグループ**

前回予想：SS、前回予想：Aが混在するグループについては判断が難しいです。

|グループ|名前|備考|
|:--|:--|:--|
|6|グラスワンダー|実装済（前回予想：SS）|
|6|メジロライアン|実装済（前回予想：A）|
|6|アグネスタキオン|実装済（前回予想：A）|
|6|イナリワン|-|
|6|エイシンフラッシュ|-|
|6|カワカミプリンセス|-|
|6|シリウスシンボリ|-|
|6|タマモクロス|-|
|6|ナカヤマフェスタ|-|
|6|ミスターシービー|-|

# まとめ

未実装ウマ娘の予想結果は以下の通りです。

**星1ウマ娘の予想**

- イクノディクタス
- シーキングザパール
- スイープトウショウ
- バンブーメモリー
- ビコーペガサス
- ヒシアマゾン

**強く設定されそうなウマ娘の予想**

- アグネスデジタル
- ナリタブライアン
- メジロドーベル

# 記事中の画像について

本記事は、公式のガイドラインに従って、ゲーム中画面から取得した静止画だけを利用しています。

ウマ娘　配信ガイドライン
https://umamusume.jp/streaming_guidelines/

> 本コンテンツから取り込んだゲームプレイの動画や静止画を、共有サイトに投稿することができます。