11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

League of Legendsの試合データから勝敗を判別する機械学習①

Last updated at Posted at 2018-08-08

#はじめに
機械学習の勉強をしてみよう。と思い身近な何かをデータで用いたいと考え、データ量が豊富で、かつAPIでやれることが豊富なLeague of Legendsというゲーム(公式サイト)を題材にしてみようと考えました。

内容としては、試合の戦績データから一部を抽出し、それらをデータセットとして用意し、戦績データから勝敗を見分けるというものです。
また、本記事では

#使うもの
本ゲームの運営が用意しているものに、RiotAIPというAPIがあるのですが、それを使いやすくしたriotwatcherというモジュールがあるため、そちらを使います。GitHub

#戦績データの確認
まずは、戦績データにどのような情報が入っているかを確認してみます。

事前にriotwatcherのインストール

pip install riotwatcher

戦績データの取得は

from riotwatcher import RiotWatcher

watcher = RiotWatcher("{APIキー}")

region = "jp1" #サーバーの選択 日本鯖はjp1
name = "{サモナーネーム}" #サモナーネームの入力

summoner = watcher.summoner.by_name(region, name)
 #プレイヤーデータの取得
ranked_state = watcher.league.positions_by_summoner(region, summoner["id"])
 #プレイヤーのランクデータ
recentmatchlists = watcher.match.matchlist_by_account(region,summoner["accountId"])
 #直近20試合のデータのリストを取得
matches = recentmatchlists['matches']

match_data = watcher.match.by_id(region, matches[0]['gameId'])
print(match_data)

としました。

まず、モジュールを読み込んだあと

watcher = RiotWatcher("{APIキー}")

でAPIキーの 入力を行います。このAPIキーはこちらで取得することができます。
次に

region = "jp1" #サーバーの選択 日本鯖はjp1
name = "{サモナーネーム}" #サモナーネームの入力

summoner = watcher.summoner.by_name(region, name)
 #プレイヤーデータの取得
ranked_state = watcher.league.positions_by_summoner(region, summoner["id"])
 #プレイヤーのランクデータ
recentmatchlists = watcher.match.matchlist_by_account(region,summoner["accountId"])
 #直近20試合のデータのリストを取得
matches = recentmatchlists['matches']

match_data = watcher.match.by_id(region, matches[0]['gameId'])
print(match_data)

では、最初に調べたいプレイヤーのサモナーネーム、またそのプレイヤーの選択しているサーバーを設定します。
また、試合データを見る際、直近20試合のデータをリストで取得するため、match_dataに代入するときは、インデックスは0にしました。理由としては、今回は戦績データの中身がどのようになっているかの確認のため、1試合分だけ欲しかったためです。これで最新の試合データを取得できます。

これを出力すると、最新の試合データがみれるのですが、あまりにも情報量が多く、1試合なのにも関わらず文字数にすると約3万文字にもなりましたので、一部分を画像で表示すると
loldata.png
となります

#まとめ
これで試合データの中身を確認することが出来ました。
次はこの中から一部分のデータを取得し、さらにそれを複数試合のデータを取得したいと思います。

プログラミング初心者の拙い文章ではありますが、最後まで見ていただきありがとうございました。

League of League of Legendsの試合データから勝敗を判別する機械学習②はこちら

11
11
0

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
11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?