Un análisis cuantitativo de la vieja escuela Runescape Hiscores.
Este repositorio aporta lo siguiente:
El conjunto de datos consta de los siguientes archivos:
player-stats.csv
: niveles de habilidad en las 23 habilidades para los 2 millones de cuentas OSRS principales.cluster-centroids.csv
: valores centrales para clústeres que emergen de dividir el conjunto de datos de jugadores en grupos basados en la similitud de la cuenta. Cada centroide es un vector de valores entre 1-99 en el espacio de "habilidad OSRS".player-clusters.csv
: IDS de clúster por jugador para tres corridas de agrupación separadas, agrupando cuentas similares mirando (i) todas las habilidades, (ii) habilidades de combate solamente y (iii) habilidades sin combate solamente.player-stats-raw.csv
: rango, nivel, XP, pistas, minijuego y estadísticas de jefe para los 2 millones de jugadores de OSRS principales. Este archivo es la salida sin procesar del proceso de raspado (1.7 GB).Estos archivos no se registran en el repositorio debido a restricciones de tamaño de archivo. Se pueden descargar por separado de Google Drive: https://bit.ly/osrs-hiscores-dataset
Las estadísticas de los jugadores fueron recolectadas de los OSRS oficiales de HISCORES durante un período de 24 horas el 21 de julio de 2022.
├── 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.
En un alto nivel, este repositorio implementa una tubería de ciencia de datos:
scrape OSRS hiscores data
↓
cluster players by stats
↓
project clusters to 3D
↓
build application data
junto con una aplicación DASH para visualizar los resultados.
Las etapas de la tubería de datos son impulsadas por un archivo de make con objetivos make
de nivel superior para cada etapa de procesamiento:
make init
: Configure el entorno del proyecto e instale dependencias.make scrape
: raspar los datos del OSRS oficial HISCORE y transformarse en un conjunto de datos limpio.make cluster
: clúster jugadores en grupos de cuentas similares según sus estadísticas. Utiliza k-means como algoritmo de agrupación, implementado por la biblioteca FAISS.make postprocess
: proyecte los centroides de clúster desde el espacio de alta dimensión hasta 3D para fines de visualización (UMAP es el algoritmo utilizado para la reducción de dimensionalidad). Calcule los cuartiles para cada clúster basado en la población de jugadores que contiene.make build-app
: cree datos de aplicaciones y base de datos utilizando todos los resultados analíticos anteriores. Este objetivo lanzará una instancia de MongoDB dentro de un contenedor Docker en la URL localhost:27017
(por defecto). Los pasos 2 y 3 pueden (y deben) omitirse simplemente ejecutando make download-dataset
, que obtiene los datos raspados y los resultados de agrupación de un cubo S3. Esto requiere una cuenta de AWS con credenciales ubicadas en el directorio ~/.aws
.
Para iniciar la aplicación, ejecute make run-app
y visite la URL localhost:8050
en un navegador web.
La aplicación final se puede construir y ejecutar en una toma a través de make app
, que utiliza datos descargados en lugar de raspar y agrupar los datos desde cero. El objetivo make all
es lo que se usó para construir los resultados finales para este repositorio. Si raspan datos, tenga en cuenta que el alto uso de la API HISCORE puede resultar en que su IP se bloquee. Asegura y respetan los recursos del servidor de Jagex en su uso de este código.
Ejecutar make help
para ver más objetivos de nivel superior.
Se establecen varias variables de entorno para configurar la aplicación.
OSRS_APPDATA_URI
: Ruta a los datos de la aplicación .pkl archivo (S3 o local)OSRS_MONGO_URI
: URL en la que se está ejecutando la instancia de MongoDBOSRS_MONGO_COLL
: almacene/recupere los datos del reproductor de la recopilación con este nombreTambién hay variables de entorno que definen nombres de archivo en cada etapa de la tubería de datos.
Los valores predeterminados para todas las variables de entorno se definen en .env.default
e importan cada vez que se ejecuta un objetivo make
. Si existe un archivo llamado .env
, cualquier configuración allí anulará a las de .env.default
.
~/.aws
(cree una cuenta aquí) all
: las 23 habilidades de OSRScb
: las 7 habilidades de combatenoncb
: las 16 habilidades que no son de combaten_neighbors=10
y min_dist=0.25
se usaron para divisiones all
y noncb
; n_neighbors=20
y min_dist=0.25
se usaron para Split cb
.Aquí hay algunas ideas para proyectos de ciencia de datos.