はじめに
haripoさんの LDA for Pokemon analysis の記事が面白かったので,
二番煎じになりますがトピックモデルでポケモンの分類をしました.
本記事の構成
- はじめに
- トピックモデル
- ポケモン分類
- 結果と分析
- もう少し分析
- おわりに
トピックモデル
トピックモデルについては以前書いた記事を参考にしてください.
ポケモン分類
トピックモデルで使用される用語をポケモン分類に当てはめると
以下のテーブルのようになります.
トピックモデル | ポケモン分類 |
---|---|
文書 | ポケモン |
トピック | タイプ |
単語 | わざ |
ポケモンはタイプを持ち,タイプは覚えられる技に影響を与えます.
例えば,みずタイプのポケモンは「なみのり」や「あわ」といった
みずタイプの技を覚える傾向があります.
この傾向は覚える技を観測データとした分類に利用できそうです.
結果と分析
今回は変分ベイズ推定を用いてパラメータを推定し,
ポケモンを分類しました.
- ポケモン数 $D$: 721
- わざ数 $V$: 620
- トピック数 $K$: 30
推定したパラメータをもとに分布を決定し,
各トピックの上位10体のポケモンをまとめました.
同じタイプのポケモンが集まっていそうです.
次に各トピックで出現確率の高い技を上位10個まとめました.
全ては載せられないので3トピックぶん載せます.
上から順にかくとう,ひこう,ドラゴンの技っぽいです.
# probability, move
# topic 0
0.038194060809852150,きあいパンチ
0.037835195362798050,なげつける
0.036841611052444170,グロウパンチ
0.034094062097912610,かわらわり
0.031582047497348980,きあいだま
0.030022570931390366,かみなりパンチ
0.028445813433849287,けたぐり
0.025004928499331930,ほのおのパンチ
0.023780587984568276,カウンター
0.021945692094110280,がんせきふうじ
# topic 4
0.033900215309604030,そらをとぶ
0.030482342390286497,ついばむ
0.028591087641639673,はがねのつばさ
0.027435959356401675,はねやすめ
0.027380458031433918,おいかぜ
0.025788738790993984,きりばらい
0.023034317940404975,ねっぷう
0.022523589807169140,つばめがえし
0.022254501055455754,ゴッドバード
0.020131867462295738,でんこうせっか
# topic 11
0.049065350322072170,げきりん
0.041774262273487610,かみくだく
0.041624388294984890,りゅうのはどう
0.037855463232992870,ほえる
0.025959566718192560,ドラゴンクロー
0.024452559013954666,かみつく
0.023117951513882520,りゅうせいぐん
0.022165850178318302,りゅうのいぶき
0.021211659635587490,ドラゴンテール
0.020565024347301973,アイアンテール
ちなみにどの技も等確率で出現すると仮定すると,
$0.001612903$ になります.
もう少し分析
トピック1にはイーブイ系が集まっています.
# topic 1
0.043147518977559340,あまえる
0.041203419444248310,とっておき
0.033292408675975230,かたきうち
0.033029453562122160,ほしがる
0.030529522626056543,ふるいたてる
0.025551829416613884,ハイパーボイス
0.024972809947129540,しっぽをふる
0.024818145340899777,エコーボイス
0.023821039582134246,なきごえ
0.023117882965061936,てだすけ
私は最近のポケモンに詳しくないので,
これらがイーブイ系に特異な技なのか知りません.
分類結果を分析にするには,ある程度知識が必要になります.
トピック13は分類に失敗していそうです.
# topic 12
0.057367839760812930,いびき
0.053966900730742826,はたきおとす
0.045267075341040960,やつあたり
0.042824715616878280,ないしょばなし
0.042506636983195300,からげんき
0.042225237649753020,ひみつのちから
0.041397727253613630,どくどく
0.035804309317892184,まもる
0.034668594832704050,りんしょう
0.021632999482884614,つばめがえし
ポケモンの場合は分類結果の評価が比較的簡単でした.
しかし,トピックを定義しづらい場合は,
分類結果が良いか悪いか評価するのが難しそうです.
また,コードを回す度に結果を見て分析するが大変でした.
おわりに
トピックモデルでポケモンの分類ができました.
想定よりも良い結果が出たので楽しかったです.
ソースコードは公開しない予定です.