Eine quantitative Analyse der Runescape -Erzählungen der alten Schule.
Dieses Repository trägt Folgendes bei:
Der Datensatz besteht aus den folgenden Dateien:
player-stats.csv
: Fertigkeitsniveaus in allen 23 Fähigkeiten für die 2 Millionen OSRS-Konten.cluster-centroids.csv
: Zentrale Werte für Cluster, die sich aus der Partitionierung des Player-Datensatzes in Gruppen ergeben, die auf der Ähnlichkeit von Kontos basieren. Jeder Schwerpunkt ist ein Wertevektor zwischen 1 und 99 im Bereich "OSRS Skill".player-clusters.csv
: Cluster-IDs pro Spieler für drei separate Clustering-Läufe, gruppieren ähnliche Konten, indem Sie (i) alle Fähigkeiten betrachten, (ii) nur Kampffähigkeiten und (iii) nur Nicht-Kombat-Fähigkeiten.player-stats-raw.csv
: Rang, Level, XP, Hinweise, Minispiel und Boss-Statistiken für die Top 2 Millionen OSRS-Spieler. Diese Datei ist die RAW -Ausgabe aus dem Scraping -Prozess (1,7 GB).Diese Dateien werden aufgrund von Dateigrößenbeschränkungen nicht im Repo eingecheckt . Sie können getrennt von Google Drive heruntergeladen werden: https://bit.ly/osrs-hiscores-dataset
Die Spielerstatistiken wurden am 21. Juli 2022 über einen Zeitraum von 24 Stunden aus den offiziellen OSRS-Jisskörpern gesammelt.
├── LICENSE
├── Makefile <- Top-level Makefile for building and running project.
├── README.md <- The top-level README for developers using this project.
│
├── app <- Application code and assets.
├── bin <- Utility executables.
│
├── data
│ ├── final <- The final, canonical data set.
│ ├── interim <- Intermediate data that has been transformed.
│ └── raw <- The original, immutable data dump.
│
├── ref <- Reference files used in data processing.
├── scripts <- Scripts for the stages of the data processing pipeline.
│
├── src
│ ├── analysis <- Data science and analytics.
│ └── scrape <- Scraping hiscores data.
│
├── test <- Unit tests.
│
├── Procfile <- Entry point for deployment as a Heroku application.
├── requirements.txt <- Dependencies file for reproducing the project environment.
├── runapp.py <- Main script for Dash application.
└── setup.py <- Setup file for installing this project through pip.
Auf einer hohen Ebene implementiert dieses Repository eine Data Science -Pipeline:
scrape OSRS hiscores data
↓
cluster players by stats
↓
project clusters to 3D
↓
build application data
zusammen mit einer Dash -Anwendung zur Visualisierung der Ergebnisse.
Die Phasen der Datenpipeline werden von einem Makefile mit Top-Level make
Target für jede Verarbeitungsstufe angetrieben:
make init
: Richten Sie die Projektumgebung ein und installieren Sie Abhängigkeiten.make scrape
: Kratzen Sie Daten aus den offiziellen OSRS -Hisskorten ab und verwandeln Sie sich in einen gereinigten Datensatz.make cluster
: Cluster -Spieler in Gruppen ähnlicher Konten gemäß ihren Statistiken. Verwendet K-Means als Clustering-Algorithmus, der von der FAISS-Bibliothek implementiert wird.make postprocess
: Projizieren Sie die Cluster-Zentroids vom hochdimensionalen Raum zu 3D für Visualisierungszwecke (UMAP ist der Algorithmus, der für die Reduzierung der Dimensionalität verwendet wird). Berechnen Sie Quartile für jeden Cluster basierend auf der von ihnen entsprechenden Spielerpopulation.make build-app
: Erstellen Sie Anwendungsdaten und Datenbank mit allen früheren analytischen Ergebnissen. Dieses Ziel startet eine MongoDB -Instanz in einem Docker -Container am URL localhost:27017
(standardmäßig). Die Schritte 2 und 3 können (und sollten) durch einfaches Laufen übersprungen werden. make download-dataset
, das die abgekratzten Daten und die Clustering-Ergebnisse eines S3-Eimers abruft. Dies erfordert ein AWS -Konto mit Anmeldeinformationen im ~/.aws
-Verzeichnis.
Um die Anwendung zu starten, make run-app
und besuchen Sie den URL localhost:8050
in einem Webbrowser.
Die endgültige Anwendung kann in einer Aufnahme über make app
erstellt und ausgeführt werden, bei der heruntergeladene Daten verwendet werden, anstatt die Daten von Grund auf neu zu kratzen und zu klugen. Das Ziel, das make all
, wurde verwendet, um die endgültigen Ergebnisse für dieses Repo zu erstellen. Beachten Sie bei Daten, dass eine hohe Verwendung der Hiscores -API dazu führen kann, dass Ihre IP blockiert wird. Bitte richten Sie die Serverressourcen von Jagex in Ihrer Verwendung dieses Codes aus und respektieren Sie sie.
Run make help
mehr Ziele auf höchstem Niveau zu sehen.
Eine Reihe von Umgebungsvariablen werden festgelegt, um die Anwendung zu konfigurieren.
OSRS_APPDATA_URI
: Pfad zu Anwendungsdaten .PKL -Datei (S3 oder Lokal)OSRS_MONGO_URI
: URL, in der die MongoDB -Instanz ausgeführt wirdOSRS_MONGO_COLL
: Store/Ruf Player -Daten aus der Sammlung mit diesem Namen SpeichernEs gibt auch Umgebungsvariablen, die Dateinamen in jeder Phase der Datenpipeline definieren.
Standardeinstellungen für alle Umgebungsvariablen werden in .env.default
definiert und importiert, wenn ein make
-Ziel ausgeführt wird. Wenn eine Datei mit dem Namen .env
vorhanden ist, werden alle Einstellungen dort in .env.default
überschreiben.
~/.aws
-Verzeichnis installiert sind (Konto hier erstellen) all
: Alle 23 OSRS -Fähigkeitencb
: Die 7 Kampffähigkeitennoncb
: Die 16 Fähigkeiten ohne Kombatn_neighbors=10
und min_dist=0.25
wurden für Splits all
und noncb
verwendet; n_neighbors=20
und min_dist=0.25
wurden für Split cb
verwendet.Hier sind einige Ideen für Datenwissenschaftsprojekte.