1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

HTMLにPythonを記述できるPyScriptを使い、ポケモンの種族値をデータ化してみた

ASCII.jp / 2023年1月21日 9時0分

ポケモンをクラスタリングするツールをWeb上で公開してみる

 せっかくなので、Pythonっぽい処理をするツールを作って、Webで公開できるようにしてみました。PyScriptの公式サイトにはたくさんのデモが公開されており、その中にあるscikit-learnのKMeansを使ったクラスタリングのダッシュボードをアレンジしてみました。

 デモではペンギンのデータセットが用いられていました。今回は最近ハマっているポケモンの種族値(※)のデータで作成してみようと思います。

※ポケモンごとに決まっている固有の能力値のことを指す、インターネット上で発祥した通称。

 ハマっているといっても、最新作「ポケットモンスター スカーレット・バイオレット」の前にやったのは、小学生くらいにやった「ポケットモンスター クリスタルバージョン」が最後で、ほぼ記憶はありません。今回初めて種族値などのパラメーターが事細かくあることを知った超初心者です……。

 今回初めて種族値などのパラメーターが事細かくあることを知ったぐらいで、この記事を書いている段階ではまだストーリーもクリアしていません。今回はPyScriptで遊びつつ、ポケモンのデータに少し触れてみれたらいいなという気持ちでトライしました。

 ポケモンのデータはKaggleからお借りしました。第7世代までのポケモン807匹分のデータセットです。

▼Pokemon with stats. Generation 7

 上記のデータセットのうち、No(図鑑番号)、名前、世代、HP、こうげき、ぼうぎょ、とくこう、とくぼう、すばやさ、とくせい1、とくせい2、タイプ1、タイプ2のカラムを抜きだし、種族値のうちの2値を用いてクラスタリングできるようにしました。

 以下、py-scriptタグ内のコードです。

 CSVファイルは直接読み込めないので、外部にファイルを置いて開く形になります。グラフの描画にはライブラリ「Altair」が用いられており、こちらも公式サイトのドキュメントを見ながら調整しました。

 hello world!と同様に「Live Server」を用いてWeb上での表示を確認します。

 公式サイトでもPyScriptでも言われていますが、立ち上げに結構時間がかかります。環境や処理内容にもよると思いますが、今回私の環境では25〜30秒ほどかかりました。Web上での表示は以下のようになりました。

 Netlifyを使用してデプロイもしたので、実際の動きは該当ページより見てみてください!

PyScriptを使ってみた感想

 ポケモンのクラスタリングを作ってみたものの、ポケモンに関する知識が浅すぎて、「へー、こんなポケモンがいて、こんな種族値なんだー」と眺めることしかできず、何も考察できませんでした(笑)。

 PyScriptは現段階では制約が多く自由度がまだあまり高くなかったり、処理にかなり時間がかかったりしてしまうなど性能は十分ではありませんが、これから開発が進んでいくのが待ち遠しいです。

高桑蘭佳(たかくわらんか)

 1994年生まれ。石川県出身。東京工業大学大学院環境社会理工学院研究生。2018年8月にメンヘラテクノロジーを設立。彼氏を束縛したくて起業した大学院生として「アウト×デラックス」(フジテレビ系列)や、「指原莉乃&ブラマヨの恋するサイテー男総選挙」(AbemaTV)などに出演。

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください