こんにちはECナビ システム本部の大竹(@tokosa)です。

Pokemonの続きです。その後ポケットモンスターホワイトを購入し、先日クリアしました。

前回の記事Pokemon Naive Bayesのテスト結果にて『アーケオス』が出ていましたが、がんばって『アーケオス』育てた結果
最後のポケモンリーグでは大活躍してくれました!

とはいえ新しいポケモンが150程増え、まだ全ての新ポケモンを理解していません。

クリア後の楽しみとして、新ポケモンのみを使用し、バトルサブウェイで21連勝できるポケモンを育てたいと思います。

しかし、バトルサブウェイの縛りとして伝説・幻系のポケモンが使用できません・・・

そこで、今回は育成するポケモンを選ぶ為にRを使用し混合分布モデルによるクラスタリングを行います。

今回使用するデータは下記のデータ(抜粋)

>pokemon.test=read.csv("pokemon-test.csv") #CSVの読み込み
> head(pokemon.test) #データ表示
  No       名前  HP こうげき ぼうぎょ とくこう とくぼう すばやさ    TYPE1    TYPE2 伝説
1  0 ビクティニ 100      100      100      100      100      100 エスパー   ほのお   幻
2  1 ツタージャ  45       45       55       45       55       63     くさ              
3  2 ジャノビー  60       60       75       60       75       83     くさ              
4  3 ジャローダ  75       75       95       75       95      113     くさ              
5  4     ポカブ  65       63       45       45       45       45   ほのお              
6  5 チャオブー  90       93       55       70       55       55   ほのお かくとう     
> nrow(pokemon.test) #ポケモン数
[1] 151

ポケモンBWの151ポケモンデータにてクラスタリングを行います。

■モデルの選択

Rのパッケージmclustを使用します。mclustにはいくつか関数が用意されています。

まず、関数EMclustを使用し、クラスター数を推測します。

install.packages("mclust")
library(mclust)

#ベイズ情報量基準BIC値を折れ線グラフで表現
pokemon.emc <- EMclust(pokemon.test[,3:8])
plot(pokemon.emc) 
pokemon-emc
グラフで見ると, VEIモデルのクラスター数4とVIIモデルのクラスター数7の時が値が大きいです。

■クラスタリング

関数hcを使用し、クラスタリングをします。

しかし関数hcにはモデルのVEIがないのでVIIモデルを使用します。

そして関数hclassを使用し、クラスター数7で分類します。

pokemon.mhc<-hc(modelName = "VII", data = pokemon.test[,3:8]) 
pokemon.cl<-hclass(pokemon.mhc,7) 
> pokemon.cl
       7
  [1,] 1
  [2,] 2
  [3,] 3
  [4,] 1
  [5,] 4
  [6,] 3
  [7,] 1
  [8,] 4
  [9,] 3

■結果の表示

pokemon.result<-cbind(pokemon.test,cl=pokemon.cl[,1]) #clはクラス
subset(pokemon.result,cl==1) #クラス1を選択
> subset(pokemon.result,cl==1)
     No       名前  HP こうげき ぼうぎょ とくこう とくぼう すばやさ    TYPE1    TYPE2 伝説 cl
1     0 ビクティニ 100      100      100      100      100      100 エスパー   ほのお   幻  1
4     3 ジャローダ  75       75       95       75       95      113     くさ                1
7     6 エンブオー 110      123       65      100       65       65   ほのお かくとう       1
10    9 ダイケンキ  95      100       85      108       70       70     みず                1
25   24 ムシャーナ 116       55       85      107       95       29 エスパー                1
35   34 ココロモリ  67       57       55       77       55      114 エスパー   ひこう       1
38   37   タブンネ 103       60       86       60       86       50 ノーマル                1
44   43 ガマゲロゲ 105       85       75       85       75       74     みず   じめん       1
54   53 エルフーン  60       67       85       77       75      116     くさ                1
56   55 ドレディア  70       60       75      110       75       90     くさ                1
63   62 マラカッチ  75       86       67      106       67       60     くさ                1
68   67 シンボラー  72       58       80      103       80       97 エスパー   ひこう       1
74   73 アーケオス  75      140       65      112       65      110     いわ   ひこう       1
78   77 ゾロアーク  60      105       60      120       60      105     あく            幻  1
83   82 ゴチルゼル  70       55       95       95      110       65 エスパー                1
86   85 ランクルス 110       65       75      125       85       30 エスパー                1
91   90 バイバニラ  71       95       85      110       95       79   こおり                1
94   93   エモンガ  55       75       60       75       60      103   でんき   ひこう       1
98   97 モロバレル 114       85       70       85       80       30     くさ     どく       1
100  99 ブルンゲル 100       60       70       85      105       60     みず ゴースト       1
101 100 ママンボウ 165       75       80       40       45       65     みず                1
111 110 シビルドン  85      115       80      105       80       50   でんき                1
113 112   オーベム  75       75       75      125       95       40 エスパー                1
116 115 シャンデラ  60       55       90      145       90       80 ゴースト   ほのお       1
122 121 フリージオ  70       50       30       95      135      105   こおり                1
124 123 アギルダー  80       70       40      100       60      145     むし                1
125 124   マッギョ 109       66       84       81       99       32   じめん   でんき       1
127 126 コジョンド  65      125       60       95       60      105 かくとう                1
137 136 バルジーナ 110       65      105       55       95       80     あく   ひこう       1
138 137 クイタラン  85       97       66      105       66       65   ほのお                1
142 141 サザンドラ  92      105       90      125       90       98     あく ドラゴン       1
144 143 ウルガモス  85       60       65      135      105      100     むし   ほのお 伝説  1
145 144 コバルオン  91       90      129       90       72      108   はがね かくとう 伝説  1
147 146 ビリジオン  91       90       72       90      129      108     くさ かくとう 伝説  1
148 147 トルネロス  79      115       70      125       80      111   ひこう          伝説  1
149 148 ボルトロス  79      115       70      125       80      111   でんき   ひこう 伝説  1
150 149   レシラム 100      120      100      150      120       90 ドラゴン   ほのお 伝説  1
151 150   ゼクロム 100      150      120      120      100       90 ドラゴン   でんき 伝説  1

他の分類では・・

 subset(pokemon.result,cl==6)#クラス6を選択
> subset(pokemon.result,cl==6)
     No       名前 HP こうげき ぼうぎょ とくこう とくぼう すばやさ    TYPE1  TYPE2 伝説 cl
17   16 レパルダス 64       88       50       88       50      106     あく              6
19   18 ヤナッキー 75       98       63       98       63      101     くさ              6
21   20 バオッキー 75       98       63       98       63      101   ほのお              6
23   22 ヒヤッキー 75       98       63       98       63      101     みず              6
30   29 ゼブライカ 75      100       63       80       63      116   でんき              6
57   56   バスラオ 70       92       65       80       55       98     みず              6
80   79 チラチーノ 75       95       60       65       60      115 ノーマル              6
88   87   スワンナ 75       87       63       87       63       98     みず ひこう       6
103 102 デンチュラ 70       77       60       97       60      108     むし でんき       6

■まとめ

結果は、クラス1に伝説のポケモン全9のうち7が同分類されています。

クラス6は同分類のポケモン(ヤ・バ・ヒヤッキー)が入ります。

クラス1のポケモンはなかなか良さそうなポケモンが揃ったのではないでしょうか?

この中から(伝説・幻以外で)育てるポケモンを選ぼうと思います。