LoginSignup
2

More than 3 years have passed since last update.

MATLABによるポケモンのデータ解析

Posted at

こんにちは

watawatavoltageです.

はじめに

最近,ポケモンのデータを使った機械学習の記事が増えてきている風に思えます.私も,アイコンをガラル地方に住んでいるワンパチにするくらいポケモン好きでございます.そこで,ポケモンのデータを使ってなにかできないかなと思い私もポケモンデータ解析の世界に参戦いたします.

ポケモンの世界を考えたときに,思うのがどのタイプのポケモンがどれくらいいるのかという情報です.感覚的には,わかるけれども,果たしてデータでみるとどうなのか知りたいですよね.

ということで,さっそくデータ解析したいと思います.今回,使うデータセットはこのサイトからダウンロードできます(kaggleアカウントが必要).本データセットには,カントー地方からアローラ地方のポケモンの情報がつまっています.今回の解析は細かい分類を無視しています(フォルムチェンジやメガシンカも1個体としてカウント,タイプが2つあるポケモンも重複してカウント).データ解析には,MATLABを用いています.Pythonユーザーの方ごめんなさい.

ソースコード

以下にMATLABのソースコードを示します.読みにくいソースコードで申し訳ございません.

pokemon_datamining.m
%% 変数やグラフの消去

clear all
close all

%% ポケモンのデータの読み込み.カレントディレクトリにPokemon.csvを置く.
%ダウンロード元"https://www.kaggle.com/abcsds/pokemon"

Pokemon_data = readtable('Pokemon.csv', 'delimiter', ',');

%% 各タイプに対するポケモンの分布

%1つ目のタイプを抽出
Pokemon_type1 = groupsummary(Pokemon_data,'Type1')

%2つ目のタイプがあれば抽出
Pokemon_istype2 = Pokemon_data(~ismissing(Pokemon_data.Type2),:)
Pokemon_type2   = groupsummary(Pokemon_istype2,'Type2')

%1つ目のタイプと2つ目のタイプの数を統合
Pokemon_Type_TotalCount = Pokemon_type1.GroupCount + Pokemon_type2.GroupCount

%テーブルの再構成
Pokemon_type = table(Pokemon_type1.Type1,Pokemon_Type_TotalCount,'VariableNames',{'Type','GroupCount'})

%% グラフの表示

bar(categorical(Pokemon_type.Type),Pokemon_type.GroupCount)
title("タイプ別ポケモンの数")
ylabel("ポケモンの数[匹]")

結果

結果として次のようなグラフが得られました.
pokemon_graph.png

この結果からわかることは,まず水タイプが多いことですね.マナフィの映画のときにたくさんの水タイプポケモンが海を泳いでいたのは記憶に新しいです.私は,ミロカロスが好きですが...

次に,ノーマルタイプポケモンが多いですかね.ノーマルは無難なタイプですね.ガルーラ大暴れしたのも記憶に新しいですね.最近では,ドラパルトやミミッキュたちの猛攻をノーマルタイプポケモンで防ぐ戦略も人気?ですよね.カビゴンに期待します.

あとは,ひこうタイプポケモンですかね.確かに,人気ポケモンが固まっている(リザードン,サンダー,フリーザー,にらみつけるさん,ボルトロスなど)の序盤鳥ポケモンは必然的にひこうですよね.さらにノーマルと抱合せがほぼほぼ.ひこう単体はいなかったような(実際はトルネロス,最近だとココガラとかが該当).

逆に,あまりいないタイプのポケモンはこおりタイプポケモンですね.最近だと,波平ペンギンことコオリッポが人気ですね.あと,ウルガモスのこおり版であるモスノウがきてますね.こおり,むしタイプなので,あいかわらずいわタイプに4倍弱点をもっています.こおりタイプは終盤に出てくるイメージが強いです.カントー地方だと,終盤のふたごじま(ジュゴン,フリーザーなど).ジョウト地方だと,こおりのぬけみち(ウリムー,ニューラなど).ホウエン地方だと,あさせのほらあな(タマザラシ,ユキワラシ?など).

ほかは,フェアリータイプですね.このタイプは最近増えたタイプなので,仕方ないですかね.昔からいたポケモンの一部にフェアリータイプをつけてある程度増えている印象ですかね.フェアリータイプの代表格といえば,ミミッキュですね.おそろしい.最近では,オーロンゲとか伝説ポケモンのザシアンとかが該当しますね.ドラゴン無効はやっぱり強いですわ.ポケモンバトルの神ガブ・リアスもいなくなりましたね.

ゴーストタイプですね.またミミッキュですか.よく出てきますね.ピカチュウさんよりもこの記事に多く出てきているじゃないですか?.ミミッキュ旋風はいつ終わることやら.気長に待ちましょう.最近だと,ギラティナと同じタイプをもつドラパルトが人気ですね.いやーギラティナかっこよかったね.あの映画は良かった.時代的にはコイル事件のあたり.シェエーイミですよ.あいつてんめぐエアスラ使えますよ.キッスさんも顔負けですわ.

とこんなもんですかね.

おわりに

今回は,簡単ですが,ポケモンのデータ解析をやってみました.しょうもない雑談が長くなりましたが,やはりポケモンは最高ですね.いつかポケモンの専門記事を書きたいですね.全く懐古厨ですわ.またアップしてほしい記事とか,ソースコードが間違えているとか,コメント等あればよろしくお願いいたします.

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2