[Python] Analysieren Sie Splatoon 2-Ligaspieldaten mithilfe einer Korrelationskoeffiziententabelle

[Python] Analysieren Sie Splatoon 2-Ligaspieldaten mithilfe einer Korrelationskoeffiziententabelle

Einführung

Die Schlachtrekorddaten von Splatoon 2 werden in den letzten 50 Spielen auf dem Nintendo-Server gespeichert und können mit der offiziellen App "Squid Ring 2" bestätigt werden. In "ikaWidget2", das später beschrieben wird, können diese Kampfaufzeichnungsdaten heruntergeladen und gespeichert werden, und statistische Daten wie der Durchschnittswert von Tötungen und Todesfällen und die Gewinnrate für jede Stufe können erhalten werden. Auf Websites wie "Supra Data Club" können detailliertere statistische Daten mithilfe der in "ikaWidget2" gespeicherten Daten abgerufen werden. Die meisten dieser statistischen Daten basieren jedoch auf den Ergebnissen jedes Einzelnen. ** Es gibt nur wenige Analysewerkzeuge, die sich auf die Interaktion innerhalb des Teams im 4-Spieler-Modus "Ligaspiel" ** konzentrieren. In diesem Artikel erstellen wir eine Bibliothek, die die Korrelationskoeffiziententabelle der Ergebnisse in unserem Team in "Ligaspiel" berechnet und das Spiel damit analysiert.

Was ist Splatoon 2?

Überblick

a23d1ef3b585f79db54f5797e1f5173db5b04ee5d149d8db7ed0f1db44cd3794.jpg Splatoon 2 ist ein Action-Shooter-Spiel, das am 21. Juli 2017 von Nintendo veröffentlicht wurde. Bis Oktober 2020 wurden mehr als 10 Millionen Einheiten verkauft. Es ist ein sehr beliebtes Spiel, das auch jetzt, mehr als drei Jahre nach seiner Veröffentlichung, regelmäßig aktualisiert wird.

Spezifikation

Der Spieler wird zu einem Charakter, der als Tintenfisch (oder Tintenfisch) verkleidet ist, und kämpft, indem er Tinte mit Waffen wie Wasserpistolen und Walzen malt. Es kann auch besiegt werden, indem Tinte auf den Feind gesprüht wird (töten). Der besiegte Spieler wird in ca. 10 Sekunden wiederbelebt. Da alle Regeln 4v4-Teamkämpfe sind, ist die Zusammenarbeit innerhalb des Teams wichtig. Wenn Sie die Bühne mit der Tinte Ihres Teams bemalen, werden spezielle Punkte gesammelt und Sie können mächtige "Spezialwaffen" einsetzen. Wenn Sie jedoch von einem Feind besiegt werden, werden die Spezialpunkte halbiert.

Regel

Nawabari Schlacht

Das Team, das den Boden innerhalb des Zeitlimits breiter als der Gegner malt, gewinnt. Grundregeln in Splatoon.

Gachi Bereich

Messen Sie sich um die Zeit, um den "Gachi-Bereich", der auf der Bühne steht, mit Ihrer eigenen Tinte zu besetzen. Ein Spiel, in dem die Nawabari-Schlacht lokalisiert ist und der Sieg oder die Niederlage entsprechend der Besatzungszeit festgelegt wird.

Turmsteuerung

Das Team, das in "Gachiyagra" einsteigt und sich innerhalb des Zeitlimits dem Ziel des gegnerischen Teams nähert, gewinnt. Sie können "Gachiyagra" vorantreiben, indem Sie oben fahren, aber es ist ein gutes Ziel des Feindes.

Gachihoco Schlacht

Das Team, das eine riesige Wasserpistole namens "Gachihoko" aufnimmt und sie innerhalb des Zeitlimits näher an das Ziel des gegnerischen Teams bringt, gewinnt. Ein Spieler mit einem "Gachihoco" kann einen mächtigen "Gachihoco-Schuss" abschießen, aber die Position geht vom gegnerischen Team verloren und es ist einfacher, gezielt zu werden.

Gachiasari

Nimm den "Asari", der auf der Bühne verstreut ist, und setze ihn in das Ziel des gegnerischen Teams, um um Punkte zu kämpfen. Da das Ziel zunächst durch eine Barriere geschützt ist, müssen Sie 10 Asari sammeln, um einen "Gachiasari" herzustellen und die Barriere zu zerstören. Wenn Sie die Barriere zerstören, können Sie für einen bestimmten Zeitraum ein Schwert in das Ziel des gegnerischen Teams stecken.

Ligaspiel

Ein Modus, in dem Sie mit Ihren Freunden ein 4-Personen-Team erstellen und gegen andere Teams spielen können. Im Ligaspiel können Sie mit vier Kampfregeln spielen: "Gachi Area", "Gachi Yagra", "Gachi Hoko Battle" und "Gachi Sari".

Was ist die Korrelationskoeffiziententabelle?

Korrelationskoeffizient

Der Korrelationskoeffizient ist ein Index von -1 bis +1, der die Stärke der Beziehung zwischen zwei Variablen angibt. Wenn der Korrelationskoeffizient positiv ist, gibt es eine "positive Korrelation", und wenn er negativ ist, gibt es eine "negative Korrelation". Wenn eine positive Korrelation besteht, haben die beiden Variablen eine sogenannte "direkte Proportionsbeziehung", und wenn eine zunimmt, nimmt auch die andere zu. Wenn es eine negative Korrelation gibt, nimmt im Gegensatz zur positiven Korrelation, wenn eine zunimmt, die andere ab. Beispielsweise zeigt das Verhältnis zwischen Größe und Gewicht eine starke positive Korrelation, und die nationale Arbeitslosenquote und die Wirtschaftswachstumsrate zeigen eine negative Korrelation.

Die Beziehung zwischen dem Absolutwert des Korrelationskoeffizienten und der Stärke der Korrelation ist wie folgt.

Korrelationskoeffizient abs(r) Korrelationsstärke
0.7 ≦ abs(r) Es besteht eine starke Korrelation
0.4 ≦ abs(r) ≦ 0.7 Es besteht eine Korrelation
0.2 ≦ abs(r) ≦ 0.4 Es besteht eine schwache Korrelation
0 ≦ abs(r) ≦ 0.2 Fast keine Korrelation

図1.png

Korrelationskoeffiziententabelle

Die Korrelationskoeffiziententabelle ist eine Tabelle, die den Korrelationskoeffizienten zwischen jeder der beiden Variablen zusammenfasst. 図2.png Die obige Abbildung ist eine Korrelationskoeffiziententabelle für die Variablen A, B, C und D. Aufgrund der Eigenschaften der Korrelationskoeffiziententabelle sind die Werte unten links und oben rechts in der Tabelle Linienziele.

Der Wert am Schnittpunkt von Zeile und Spalte bestimmter zwei Variablen wird zum Korrelationskoeffizienten der beiden Variablen. Beispielsweise beträgt der Korrelationskoeffizient zwischen den Variablen B und C 0,27. 図3.png Auf diese Weise kann, wenn viele Variablen behandelt werden müssen, die Beziehung zwischen jeder Variablen auf leicht verständliche Weise unter Verwendung der Korrelationskoeffiziententabelle beschrieben werden.

ikaWidget2

ikaWidget2 ist Nintendos inoffizielle Splatoon 2-Analyse-App.

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

Sie können die letzten 50 auf dem Nintendo-Server gespeicherten Spiele herunterladen und speichern und statistische Daten wie den Durchschnittswert von Kills und Todesfällen sowie die Gewinnrate für jede Phase abrufen. Die folgende Abbildung zeigt den tatsächlichen Bildschirm von ikaWidget2. S__58793988.jpg ikaWidget2 verfügt auch über eine externe Datenausgabefunktion und unterstützt die Formate json und csv (Erweiterung .tcsv). Dieses Mal wird die Korrelationskoeffiziententabelle unter Verwendung der CSV-Ausgabe von ikaWidget2 berechnet.

Umgebung

Berechnungsmethode

Die Struktur der CSV-Datei von ikaWidget2 ist unten dargestellt. 図4.png Allgemeine Daten sind das Startdatum und die Startzeit des Spiels, die Bühne, der Spielmodus usw. Nach den allgemeinen Daten werden Spielerinformationen wie die Anzahl der Kills und Todesfälle in der Reihenfolge von Ihnen → Verbündeter → Feind angeordnet. Da die Reihenfolge der Verbündeten-Daten für jedes Spiel unterschiedlich ist, müssen bei der Berechnung der Korrelationskoeffiziententabelle für Ligaspiele aus dieser Datengruppe Verbündungsdaten einzelnen Freunden zugeordnet werden. Dies kann mit dem Splatoon 2-Benutzernamen erfolgen. Durch Ändern des Nintendo Switch-Benutzernamens wird jedoch auch der Splatoon 2-Benutzername geändert, der nicht universell ist und keine Vielseitigkeit aufweist. Hier wird die "Principal ID" zum Verknüpfen verwendet. Die "Haupt-ID" ist ein benutzerspezifischer Wert und ändert sich auch dann nicht, wenn der Benutzername geändert wird. Da es sich bei diesem Wert um interne Daten handelt, kann er im Spiel nicht bestätigt werden, er kann jedoch aus der von ikaWidget2 ausgegebenen Datei abgerufen werden. Wenn Sie die Anzahl der Tötungen und Todesfälle durch Freunde organisieren können, können Sie einfach eine Korrelationskoeffiziententabelle mit der Funktion .corr () von Pandas erstellen.

Herunterladen und installieren

Die diesmal erstellte Splatoon 2 League Match Correlation Coefficient Table Calculation Library "splatoon_league_corr" wurde auf GitHub und PyPl hochgeladen.

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

Wenn Sie von PyPl installieren, können Sie mit pip installieren.

pip install splatoon_league_corr

Verwendung der Bibliothek

splatoon_league_corr bietet die folgenden Klassen und Funktionen.

class ika_data

Eine Speicherklasse für Spielerdaten.

Konstrukteur

def __init__(self,pid,jpname,usname)
Mitgliedsvariablen Erläuterung
pid Haupt-ID des Spielers
Die Haupt-ID sind interne Daten, daher können sie im Spiel nicht bestätigt werden.
Kann aus der von ikaWidget2 ausgegebenen tcsv-Datei usw. abgerufen werden
jpname Name, der bei der Ausgabe der Korrelationskoeffiziententabelle angezeigt wird
usname Name, der bei der Ausgabe der Schlachtfelddatenliste angezeigt wird

Anwendungsbeispiel

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

class team_data

Eine Teamklasse bestehend aus vier ika_data.

Konstrukteur

def __init__(self,player,friend1,friend2,friend3)
Mitgliedsvariablen Erläuterung
player Daten der Person, die die tscv-Datei ausgegeben hat
friend1~3 Freundesdaten des gleichen Teams

Anwendungsbeispiel

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

calc_corr_number_of_games(filename,save_dir,myteam,n)

Eine Funktion, die eine Excel-Datei (result.xlsx) der Korrelationskoeffiziententabelle mit der Anzahl der Spiele als Argument ausgibt.

Streit Erläuterung Schimmel
filename Pfad der einzugebenden tcsv-Datei str
save_dir Verzeichnisname zum Speichern von Ausgabedaten (automatisch generiert) str
myteam team_Datenklasse team_data
n Anzahl der Spiele bei der Berechnung der Korrelationskoeffiziententabelle int

Anwendungsbeispiel

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

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

Eine Funktion, die eine Excel-Datei (result.xlsx) der Korrelationskoeffiziententabelle mit der Dauer der Übereinstimmung als Argument ausgibt.

Streit Erläuterung Schimmel
filename Pfad der einzugebenden tcsv-Datei str
save_dir Verzeichnisname zum Speichern von Ausgabedaten (automatisch generiert) str
myteam team_Datenklasse team_data
datemin、datemax Übereinstimmungsperiode (datemin-datemax) bei der Berechnung der Korrelationskoeffiziententabelle
Beschrieben in JJMMTT.
str

Anwendungsbeispiel

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

Analyseergebnisse und Berücksichtigung

Unten finden Sie eine Korrelationskoeffiziententabelle für 50 Spiele im Gachi-Bereich meines Teams. 図6.png In dieser Tabelle ist jede Variable während des Spiels ein Wert pro Minute, um zu verhindern, dass sich der Wert aufgrund eines Knockouts verschiebt.

Variablennamen Erläuterung
win Matchgewinn / -verlust: 1 Sieg und 0 Niederlage
EnemyUdemae Durchschnittliche feindliche Udemae
Udemae:So etwas wie ein Rang im Einspieler-Spielmodus
Kill/min Anzahl der Kills pro Minute
Death/min Anzahl der Todesfälle pro Minute
PaintPoint/min Malpunkte pro Minute
Special/min Anzahl der Spezialwaffenaktivierungen pro Minute

Als Beispiel für eine Analyse werde ich beschreiben, was aus dieser Tabelle verstanden werden kann und was wahrscheinlich verstanden wird.

(1) Variables Paar mit einem großen Korrelationskoeffizienten

Der Korrelationskoeffizient zwischen "PaintPoint / min" und "Special / min" von Freund 2 beträgt 0,77, was den größten Wert in der Tabelle darstellt. Der Korrelationskoeffizient dieser beiden Variablen ist auch für Spieler und andere Freunde hoch. Wie oben erwähnt, kann die Spezialwaffe aktiviert werden, wenn eine bestimmte Anzahl von Malpunkten gesammelt wurde, sodass dieses Ergebnis als gültig angesehen werden kann. スクリーンショット 2020-10-12 220747.png

② Variablen, die den Sieg beeinflussen

Die Variable mit der stärksten Korrelation zum Sieg ist "Kill / min" von Freund 1, aber andere Spielerfreunde sind ähnlich hoch und fallen nicht auf. Dieses Ergebnis ist auch gültig, weil es selbstverständlich ist, dass "je mehr Kills Sie haben, desto einfacher ist es zu gewinnen". Umgekehrt hat der "Tod / min" des Spielers die stärkste negative Korrelation mit einem Korrelationskoeffizienten von -0,61. Dieser Wert ist im Vergleich zu anderen Freunden groß und es kann gesagt werden, dass es leicht zu verlieren ist, wenn der Spieler häufig stirbt.

図7.png

③ Korrelation bezüglich feindlicher Udemae

Analysieren Sie, wie die Stärke des Feindes die Wendung des Verbündeten verändert. Hier sind die Eigenschaften jedes Einzelnen deutlicher als zuvor. Wenn zum Beispiel die Udemae des Feindes hoch sind, ist es natürlich, dass "Kills abnehmen und der Tod zunimmt", aber Freund 1 hat keine Korrelation mit den Udemae des Feindes und der Anzahl der Todesfälle, und Freund 3 hat keine Korrelation mit der Anzahl der Kills.

Freund 1 hat oft eine Nachhutwaffe und es wird angenommen, dass der Tod nicht zunimmt, da es leicht ist, auf seine eigene Seite zu fallen, wenn ein Avantgarde-Verbündeter getötet wird. Während sie noch leben, ist die negative Korrelation zwischen der Anzahl der Kills die größte im Team, und es ist zu sehen, dass sie kämpfen, wenn der Feind stark ist.

Spieler haben eine etwas höhere Korrelation zwischen Füllpunkten und Specials als andere Freunde. Wenn der Feind stark ist, können Sie ihn nicht besiegen, sodass Sie sehen können, dass Sie versuchen, mit einem Spezial zu kämpfen, indem Sie den Boden streichen. スクリーンショット 2020-10-12 224152.png

④ Berücksichtigen Sie die Korrelation innerhalb des Teams

Lassen Sie uns abschließend die Korrelation innerhalb des Teams analysieren. Die folgende Abbildung ist eine Korrelationskoeffiziententabelle, die sich nur auf die Anzahl der Kills konzentriert. Wenn man sich diese Tabelle ansieht, kann bestätigt werden, dass nur der Spieler fast keine Kill-Korrelation mit anderen Freunden als Freund 1 hat. Mit anderen Worten, die Kills des Spielers haben keinen Einfluss auf die Anzahl der Kills anderer Avantgarde-Waffen (Freund 1 ist die Haupt-Avantgarde-Waffe, wie oben erwähnt). Aus dieser Tabelle allein ist nicht ersichtlich, aber es wird angenommen, dass der Spieler von der Frontlinie schwebt und umgekehrt in einer Position vor der Frontlinie kämpft. 図8.png

Zusammenfassung

Recommended Posts

[Python] Analysieren Sie Splatoon 2-Ligaspieldaten mithilfe einer Korrelationskoeffiziententabelle
[Python] Eine Tabelle mit Beautiful Soup kratzen
Lassen Sie uns Covid-19 (Corona) -Daten mit Python analysieren [Für Anfänger]
Erstellen Sie mit Selenium einen Datenerfassungsbot in Python
[Schatzdaten] [Python] Führen Sie mit dem TD-Client eine Abfrage zu Schatzdaten aus.
Memorandum über Korrelation [Python]
Datenanalyse mit Python-Pandas
Versuchen Sie, Online-Familien-Mahjong mit Python zu analysieren (TEIL 1: Daten aufnehmen)
So aktualisieren Sie eine in Tableau gepackte Arbeitsmappen-Datenquelle mit Python
[Python] Lesen Sie eine CSV-Datei mit großen Datenmengen mithilfe eines Generators
Datenerfassung mit Python Googlemap API
Ich habe einen Line-Bot mit Python gemacht!
Erstellen Sie mit tkinter eine Python-GUI
Zeichnen einer Silbersteinkurve mit Python
Erstellen einer einfachen Tabelle mit Stettytable
[Python] Neunundneunzig Tabellen, die for-Anweisungen verwenden
Ich habe Python ausprobiert! ] Titanic data edition_vol.1 (Balkendiagramm, Streudiagramm, Korrelationskoeffizient)
Erstellt Simple SQLite, eine Python-Bibliothek, die das Erstellen / Einfügen von SQLite-Tabellen vereinfacht