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

ふたくちおとこ

クチート大好きな私が、主にポケモンやボドゲに関して書くブログ

【ORAS】PGLにおけるポケモンの関係性を可視化した

こんにちは。sacchinと申します。ORASレート最終シーズンいかがお過ごしだったでしょうか? 私は、今まであまり興味がなかった図鑑埋めに奮闘していました。

さて、今回はPokemon Global Link(PGL)のデータを利用してコミュニティを抽出したので、 その結果をご報告したいと思います。R言語を利用しています。

グラフとして考える

グラフと聞くと、円グラフや線グラフのような統計図表が頭に浮かぶ方が多いと思います。 しかし、この記事ではグラフ理論におけるデータ構造を指しています。

一緒に手持ちに入れられているポケモン

PGLであるポケモンを選択すると以下の画面が表示されます。 (クチートはとてもかわいいので選択してしまいますよね。)

f:id:sacchin13:20160916101026p:plain:w500

図中の右側に表示されている一緒に手持ちに入れられているポケモンを、以下の様なグラフとして捉えます。

f:id:sacchin13:20160916105714p:plain:w300

次にガブリアスを見てみましょう。同じようにグラフにしてくっつけてみます。 おぉ、人物相関図っぽくなりましたね。

f:id:sacchin13:20160916105718p:plain:w300

さらにウォッシュロトムも見てみましょう。同じようにくっつけます。

f:id:sacchin13:20160916105722p:plain:w300

かなり複雑なグラフになりました。 上記は、ネットワークとも呼ばれているみたいです。

コミュニティに分割する

さて、本題のコミュニティ抽出です。 今回は手持ちに入れられているポケモンということなので、ノードが複数のコミュニティに属することを許す手法を用います。 ちょうどlinkcommというパッケージがありましたので、活用させていただきました。

library("linkcomm")
d <- read.table("data.txt")
g <- graph.data.frame(d[1:2],directed=T)
oc <- getOCG.clusters(g)
plot(oc, type="graph")

対象のデータは、ORASシーズン17のシングル対戦における

[使用率上位12体] + [それらと一緒に手持ちに入れられているポケモン120体] = 132体

から重複を除いた46体です。

結果

概要

まずは全体を見てみましょう。

f:id:sacchin13:20160916164514p:plain:w600

すごい!ちゃんとコミュニティに分けられてる! それぞれの色がコミュニティを表しているようです。 一色の場合は1つのコミュニティにだけ所属しているポケモンで、 円グラフのように多色になっている場合は、複数のコミュニティに所属しているポケモンです。

中心に非常に多くのコミュニティに所属しているポケモンがいますね。 みなさん、どのポケモンなのか予想してみましょう。

コミュニティ詳細

次に特徴のあるコミュニティをピックアップしていきます。

No ポケモン1 ポケモン2 ポケモン3 ポケモン4 ポケモン5 ポケモン6 ポケモン7
1 クチート カイリュ- ポリゴンZ
2 クチート ジャローダ ラグラージ
3 ガルーラ スイクン キノガッサ ガブリアス ボルトロス ファイアロー ゲンガー
4 ヘラクロス クレセリア ヒードラン
5 カイロス サンダー バシャーモ ラグラージ マンムー ナットレイ
6 ニョロトノ ラグラージ ボーマンダ マンムー ウォッシュロトム ナットレイ
7 エアームド バンギラス ウォッシュロトム ドリュウズ ファイアロー ゲンガー
  • コミュニティ1
  • コミュニティ2
  • コミュニティ3
  • コミュニティ4
    • 綺麗なヘラクレセドランです。ちょっと感動しました。
  • コミュニティ5
    • ここはバシャサンダーナットとラグカイロスが混じった感じでしょうか。
  • コミュニティ6
    • 雨パコミュニティと名前をつけたいですね。トノラグとマンダマンムーナットあたりが見えます。
  • コミュニティ7
    • 一転して砂パコミュニティとなりました。バンギムドーとバンドリあたりは関連が強そうです。

最もコミュ力の高いポケモンは?

さて今度は、あるポケモンがいくつのコミュニティに属しているかを見てみましょう。

f:id:sacchin13:20160916115254p:plain:w700

なんとゲンガーが17のコミュニティに属していました。コミュニティは全部で32個だったので、半分以上です。 次いで、ファイアローの16、ガブリアスの13、ガルーラの12と続きます。 先ほど予測してみましょうと書きましたが、みなさんどうだったでしょうか? 筆者は、ファイアローだと思ってました。惜しいです。

最後に

今回はR言語を用いて、一緒に手持ちに入れられているポケモンをネットワークと見立てて解析をしてみました。 有名な構築が1つのコミュニティとなったり、コミュニティの中にいくつかの構築が含まれる結果になりました。

PGLのデータがすでに集計後のデータであるため、うまく分割できないかもと考えていましたが、うまく分割できて良かったです。 また何か思いついたら解析して見たいと思います。それでは。