[Python] Analysez les données de match de la ligue Splatoon 2 à l'aide d'un tableau de coefficients de corrélation

[Python] Analysez les données de match de la ligue Splatoon 2 à l'aide d'un tableau de coefficients de corrélation

introduction

Les données d'enregistrement de bataille de Splatoon 2 sont stockées sur le serveur de Nintendo pour les 50 derniers jeux et peuvent être confirmées avec l'application officielle "Squid Ring 2". Dans «ikaWidget2», qui sera décrit plus tard, ces données d'enregistrement de bataille peuvent être téléchargées et sauvegardées, et des données statistiques telles que la valeur moyenne des tués et des morts et le taux de victoire pour chaque étape peuvent être obtenues. Sur des sites Web tels que "Supra Data Club", des données statistiques plus détaillées peuvent être obtenues en utilisant les données enregistrées dans "ikaWidget2". Cependant, la plupart de ces données statistiques sont basées sur les résultats de chaque individu, et ** il existe peu d'outils d'analyse qui se concentrent sur l'interaction au sein de l'équipe en mode 4 joueurs «League Match» **. Dans cet article, nous allons créer une bibliothèque qui calcule le tableau des coefficients de corrélation des scores au sein de notre équipe dans "Match de Ligue" et analysons le match en l'utilisant.

Qu'est-ce que Splatoon 2

Aperçu

a23d1ef3b585f79db54f5797e1f5173db5b04ee5d149d8db7ed0f1db44cd3794.jpg Splatoon 2 est un jeu de tir d'action publié par Nintendo le 21 juillet 2017. En octobre 2020, plus de 10 millions d'unités avaient été vendues. C'est un jeu très populaire qui est mis à jour régulièrement même maintenant, plus de trois ans après sa sortie.

spécification

Le joueur devient un personnage habillé en calmar (ou poulpe) et se bat en peignant de l'encre avec des armes telles que des pistolets à eau et des rouleaux. Il peut également être vaincu en pulvérisant de l'encre sur l'ennemi (tuer). Le joueur vaincu sera ressuscité dans environ 10 secondes. Puisque toutes les règles sont des batailles en équipe 4 contre 4, la coopération au sein de l'équipe est importante. Si vous peignez la scène avec l'encre de votre équipe, des points spéciaux seront accumulés et vous pourrez utiliser de puissantes "armes spéciales". Cependant, en cas de défaite par un ennemi, les points spéciaux seront divisés par deux.

règle

Bataille de Nawabari

L'équipe qui peint le terrain plus large que l'adversaire dans le délai imparti l'emporte. Règles de base dans Splatoon.

Région de Gachi

Concourez pour le temps d'occuper la "zone Gachi" placée sur la scène avec votre propre encre. Un jeu dans lequel la bataille de Nawabari est localisée et la victoire ou la défaite est définie en fonction du temps d'occupation.

Contrôle de la tour

L'équipe qui entre dans "Gachiyagra" et se rapproche du but de l'équipe adverse dans le temps imparti gagne. Vous pouvez avancer "Gachiyagra" en montant sur le dessus, mais ce sera une bonne cible de l'ennemi.

Bataille de Gachihoco

L'équipe qui ramasse un énorme pistolet à eau appelé "Gachihoko" et le rapproche du but de l'équipe adverse dans le délai imparti l'emporte. Un joueur avec un "Gachihoco" pourra tirer un puissant "Gachihoco Shot", mais la position sera perdue par l'équipe ennemie et il sera plus facile d'être ciblé.

Gachiasari

Ramassez les "Asari" dispersés sur la scène et placez-les dans le but de l'équipe adverse pour concourir pour les points. Puisque l'objectif est initialement protégé par une barrière, vous devez collecter 10 asari pour faire un "gachiasari" et détruire la barrière. Si vous détruisez la barrière, vous pourrez mettre une épée dans le but de l'équipe adverse pendant un certain temps.

Match de championnat

Un mode dans lequel vous pouvez créer une équipe de 4 personnes avec vos amis et jouer contre d'autres équipes. Dans le match de championnat, vous pouvez jouer avec quatre règles de combat: "Gachi Area", "Gachi Yagra", "Gachi Hoko Battle" et "Gachi Sari".

Qu'est-ce que le tableau des coefficients de corrélation?

Coefficient de corrélation

Le coefficient de corrélation est un indice de -1 à +1 qui indique la force de la relation entre deux variables. Lorsque le coefficient de corrélation est positif, il y a une «corrélation positive», et lorsqu'il est négatif, il y a une «corrélation négative». Lorsqu'il existe une corrélation positive, les deux variables ont une relation dite de «proportion directe», et lorsque l'une augmente, l'autre augmente également. Lorsqu'il y a une corrélation négative, contrairement à la corrélation positive, quand l'une augmente, l'autre diminue. Par exemple, la relation entre la taille et le poids montre une forte corrélation positive, et le taux de chômage national et le taux de croissance économique montrent une corrélation négative.

La relation entre la valeur absolue du coefficient de corrélation et la force de la corrélation est la suivante.

Coefficient de corrélation abs(r) Force de corrélation
0.7 ≦ abs(r) Il existe une forte corrélation
0.4 ≦ abs(r) ≦ 0.7 Il y a une corrélation
0.2 ≦ abs(r) ≦ 0.4 Il y a une faible corrélation
0 ≦ abs(r) ≦ 0.2 Presque aucune corrélation

図1.png

Tableau des coefficients de corrélation

Le tableau des coefficients de corrélation est un tableau qui résume le coefficient de corrélation entre chacune des deux variables. 図2.png La figure ci-dessus est un tableau des coefficients de corrélation pour les variables A, B, C et D. En raison des caractéristiques du tableau des coefficients de corrélation, les valeurs en bas à gauche et en haut à droite du tableau sont des cibles linéaires.

La valeur à l'intersection de la ligne et de la colonne de certaines deux variables devient le coefficient de corrélation des deux variables. Par exemple, le coefficient de corrélation entre les variables B et C est de 0,27. 図3.png De cette manière, lorsqu'il y a de nombreuses variables à traiter, la relation entre chaque variable peut être décrite d'une manière facile à comprendre en utilisant la table des coefficients de corrélation.

ikaWidget2

ikaWidget2 est l'application d'analyse Splatoon 2 non officielle de Nintendo.

App Store : https://apps.apple.com/jp/app/ikawidget-2/id1271025591 Google Play : https://play.google.com/store/apps/details?id=com.flapg.ikawidget2&hl=ja

Vous pouvez télécharger et stocker les 50 derniers jeux stockés sur le serveur de Nintendo et obtenir des données statistiques telles que la valeur moyenne des tués et des morts et le taux de victoire pour chaque étape. La figure ci-dessous est l'écran réel de ikaWidget2. S__58793988.jpg ikaWidget2 dispose également d'une fonction de sortie de données externe et prend en charge les formats json et csv (extension .tcsv). Cette fois, le tableau des coefficients de corrélation est calculé à l'aide de la sortie csv d'ikaWidget2.

environnement

Méthode de calcul

La structure du fichier csv de ikaWidget2 est illustrée ci-dessous. 図4.png Les données communes sont la date et l'heure de début du match, l'étape, le mode de jeu, etc. Après les données communes, les informations du joueur telles que le nombre de tués et de morts sont classées dans l'ordre de vous-même → allié → ennemi. Puisque l'ordre des données d'allié est différent pour chaque match, il est nécessaire d'associer des données d'allié à des amis individuels lors du calcul de la table des coefficients de corrélation de match de ligue à partir de ce groupe de données. Cela peut être fait en utilisant le nom d'utilisateur Splatoon 2, mais changer le nom d'utilisateur Nintendo Switch change également le nom d'utilisateur Splatoon 2, qui n'est pas universel et manque de polyvalence. Ici, l '"ID principal" est utilisé pour la liaison. L '"ID principal" est une valeur spécifique à l'utilisateur et ne change pas même si le nom d'utilisateur est modifié. Étant donné que cette valeur est une donnée interne, elle ne peut pas être confirmée dans le jeu, mais elle peut être obtenue à partir de la sortie de fichier d'ikaWidget2. Si vous pouvez organiser le nombre de tués et de morts par des amis, vous pouvez facilement créer une table de coefficients de corrélation avec la fonction .corr () des pandas.

Télécharger et installer

La bibliothèque de calcul du tableau des coefficients de corrélation de match de la Ligue Splatoon 2 "splatoon_league_corr" créée cette fois a été téléchargée sur GitHub et PyPl.

GitHub : https://github.com/JmpM-0743/splatoon_league_corr.git

Si vous installez à partir de PyPl, vous pouvez installer avec pip.

pip install splatoon_league_corr

Comment utiliser la bibliothèque

splatoon_league_corr fournit les classes et fonctions suivantes.

class ika_data

Une classe de stockage pour les données des joueurs.

constructeur

def __init__(self,pid,jpname,usname)
Variables de membre La description
pid ID principal du joueur
PrincipalID est une donnée interne, elle ne peut donc pas être confirmée dans le jeu,
Peut être obtenu à partir du fichier tcsv, etc. sortie d'ikaWidget2
jpname Nom affiché lors de la sortie du tableau des coefficients de corrélation
usname Nom affiché lors de la sortie de la liste des données d'enregistrement de bataille

Exemple d'utilisation

player = splatoon_league_corr.ika_data('824a58fc35365d11','Maruya','maruya')

class team_data

Une classe d'équipe composée de quatre ika_data.

constructeur

def __init__(self,player,friend1,friend2,friend3)
Variables de membre La description
player Données de la personne qui sort le fichier tscv
friend1~3 Données d'amis de la même équipe

Exemple d'utilisation

myteam = splatoon_league_corr.team_data(player,friend1,friend2,friend3)

calc_corr_number_of_games(filename,save_dir,myteam,n)

Une fonction qui génère un fichier Excel (result.xlsx) de la table des coefficients de corrélation avec le nombre de jeux comme argument.

argument La description Moule
filename Chemin du fichier tcsv à saisir str
save_dir Nom du répertoire pour stocker les données de sortie (générées automatiquement) str
myteam team_classe de données team_data
n Nombre de jeux lors du calcul de la table des coefficients de corrélation int

Exemple d'utilisation

splatoon_league_corr.calc_corr_number_of_games('ikaWidgetCSV_20201009231053.tcsv','output',myteam,50)

calc_corr_days(filename,save_dir,myteam,datemin,datemax)

Une fonction qui génère un fichier Excel (result.xlsx) de la table des coefficients de corrélation avec la durée de la correspondance comme argument.

argument La description Moule
filename Chemin du fichier tcsv à saisir str
save_dir Nom du répertoire pour stocker les données de sortie (générées automatiquement) str
myteam team_classe de données team_data
datemin、datemax Période de correspondance (datemin-datemax) lors du calcul de la table des coefficients de corrélation
Décrit en AAMMJJ.
str

Exemple d'utilisation

splatoon_league_corr.calc_corr_days('ikaWidgetCSV_20201009231053.tcsv','output_date',myteam,'20200901','20201030')

Résultats de l'analyse et considération

Vous trouverez ci-dessous un tableau des coefficients de corrélation pour 50 matchs dans la région de Gachi de mon équipe. 図6.png Dans ce tableau, chaque variable pendant le match est une valeur par minute pour éviter que la valeur ne change en raison de KO.

Nom de variable La description
win Match victoire / défaite: 1 victoire et 0 défaite
EnemyUdemae Équipe ennemie moyenne Udemae
Udemae:Quelque chose comme un rang en mode de jeu à un joueur
Kill/min Nombre de victimes par minute
Death/min Nombre de décès par minute
PaintPoint/min Points de peinture par minute
Special/min Nombre d'activations d'armes spéciales par minute

À titre d'exemple d'analyse, je décrirai ce qui peut être compris et ce qui est susceptible d'être compris à partir de ce tableau.

(1) Paire variable avec un coefficient de corrélation élevé

Le coefficient de corrélation entre «PaintPoint / min» et «Special / min» de Friend 2 est de 0,77, qui est la plus grande valeur du tableau. Le coefficient de corrélation de ces deux variables est également élevé pour les joueurs et autres amis. Comme mentionné ci-dessus, l'arme spéciale peut être activée lorsqu'un certain nombre de points de peinture sont accumulés, ce résultat peut donc être considéré comme valide. スクリーンショット 2020-10-12 220747.png

② Variables affectant la victoire

La variable avec la plus forte corrélation avec la victoire est «Kill / min» de l'ami 1, mais les autres amis joueurs sont également élevés et ne se démarquent pas. Ce résultat est également valable car il va de soi que «plus vous tuez, plus il est facile de gagner». Inversement, la corrélation négative la plus forte est la «Mort / min» du joueur, avec un coefficient de corrélation de -0,61. Cette valeur est importante par rapport à d'autres amis, et on peut dire qu'il est facile de la perdre lorsque le joueur meurt fréquemment.

図7.png

③ Corrélation concernant les Udemae ennemis

Analysez comment la force de l'ennemi change le tour de l'allié. Ici, les caractéristiques de chaque individu sont plus apparentes qu'auparavant. Par exemple, lorsque l'ennemi Udemae est élevé, il est naturel que "les tués diminuent et la mort augmente", mais l'ami 1 n'a aucune corrélation avec l'ennemi Udemae et le nombre de morts, et l'ami 3 n'a aucune corrélation avec le nombre de tués.

L'ami 1 a souvent une arme d'arrière-garde, et on pense que la mort n'augmentera pas car il est facile de tomber de son côté lorsqu'un allié d'avant-garde est tué. Tant qu'ils sont encore en vie, la corrélation négative entre le nombre de victimes est la plus importante de l'équipe, et on peut voir qu'ils luttent lorsque l'ennemi est fort.

Les joueurs ont une corrélation légèrement plus élevée entre les points de remplissage et les promotions que les autres amis. Si l'ennemi est fort, vous ne pourrez pas le vaincre, vous pouvez donc voir que vous essayez de vous battre avec un spécial en peignant le sol. スクリーンショット 2020-10-12 224152.png

④ Tenez compte de la corrélation au sein de l'équipe

Enfin, analysons la corrélation au sein de l'équipe. La figure ci-dessous est un tableau des coefficients de corrélation se concentrant uniquement sur le nombre de victimes. En regardant ce tableau, il peut être confirmé que seul le joueur n'a pratiquement aucune corrélation de tuer avec des amis autres que Friend 1. En d'autres termes, les kills du joueur n'ont aucun effet sur le nombre de kills d'autres armes d'avant-garde (l'ami 1 est l'arme principale d'avant-garde comme mentionné ci-dessus). Ce n'est pas clair à partir de ce seul tableau, mais on pense que cela indique que le joueur flotte depuis la ligne de front et, à l'inverse, se bat dans une position devant la ligne de front. 図8.png

Résumé

Recommended Posts

[Python] Analysez les données de match de la ligue Splatoon 2 à l'aide d'un tableau de coefficients de corrélation
[Python] Gratter une table avec Beautiful Soup
Analysons les données Covid-19 (Corona) en utilisant Python [Pour les débutants]
Créer un bot de collecte de données en Python à l'aide de Selenium
[Treasure Data] [Python] Exécutez une requête sur Treasure Data à l'aide du client TD.
Mémorandum sur la corrélation [Python]
Analyse de données à l'aide de pandas python
Essayez d'analyser le mahjong familial en ligne à l'aide de Python (PARTIE 1: Prendre des données)
Comment mettre à jour une source de données de classeur packagée Tableau à l'aide de Python
[Python] Lire un fichier csv avec une grande taille de données à l'aide d'un générateur
Acquisition de données à l'aide de l'API googlemap de python
J'ai fait un Line-bot avec Python!
Créer une interface graphique python à l'aide de tkinter
Dessiner une courbe Silverstone en utilisant Python
Créer un tableau simple à l'aide de prettytable
[Python] Quatre-vingt-dix-neuf tables utilisant des instructions for
J'ai essayé Python! ] Titanic data edition_vol.1 (graphique à barres, diagramme de dispersion, coefficient de corrélation)
Création de Simple SQLite, une bibliothèque Python qui simplifie la création de table SQLite / l'insertion de données