Uma análise quantitativa dos hiscores da velha escola.
Este repositório contribui com o seguinte:
O conjunto de dados consiste nos seguintes arquivos:
player-stats.csv
: níveis de habilidade em todas as 23 habilidades para as 2 milhões de contas do OSRS.cluster-centroids.csv
: valores centrais para clusters que emergem do conjunto de dados de participantes em grupos com base na similaridade da conta. Cada centróide é um vetor de valores entre 1-99 no espaço "OSRS Skill".player-clusters.csv
: IDs de cluster por jogador para três corridas de agrupamento separadas, agrupando contas semelhantes analisando (i) todas as habilidades, (ii) apenas habilidades de combate e apenas (iii) habilidades que não sejam de combate.player-stats-raw.csv
: rank, nível, xp, pistas, minijogo e estatísticas de chefe para os 2 milhões de jogadores do OSRS. Este arquivo é a saída bruta do processo de raspagem (1,7 GB).Esses arquivos não são verificados no repositório devido a restrições de tamanho de arquivo. Eles podem ser baixados separadamente do Google Drive: https://bit.ly/osrs-hiscores-dataset
As estatísticas dos jogadores foram coletadas do OSRS oficial HISCORES por um período de 24 horas em 21 de julho 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.
Em um nível alto, este repositório implementa um pipeline de ciência de dados:
scrape OSRS hiscores data
↓
cluster players by stats
↓
project clusters to 3D
↓
build application data
junto com um aplicativo DASH para visualizar os resultados.
Os estágios do pipeline de dados são conduzidos por um Makefile com alvos make
nível superior para cada estágio de processamento:
make init
: configure o ambiente do projeto e instale dependências.make scrape
: raspe dados dos Hiscores OSRs oficiais e se transforme em um conjunto de dados limpo.make cluster
: os jogadores de cluster em grupos de contas semelhantes de acordo com suas estatísticas. Usa K-Means como o algoritmo de cluster, implementado pela Biblioteca FAISS.make postprocess
: projete os centróides do cluster do espaço de alta dimensão para 3D para fins de visualização (umap é o algoritmo usado para redução da dimensionalidade). Calcule os quartis para cada cluster com base na população de jogadores que ele contém.make build-app
: Build Data Application e o banco de dados usando todos os resultados analíticos anteriores. Esse destino iniciará uma instância do MongoDB dentro de um contêiner do Docker no URL localhost:27017
(por padrão). As etapas 2 e 3 podem (e devem) ser ignoradas simplesmente executando make download-dataset
, que busca os dados raspados e os resultados de cluster de um balde S3. Isso requer uma conta da AWS com credenciais localizadas no diretório ~/.aws
.
Para iniciar o aplicativo, Run make run-app
e visite o URL localhost:8050
em um navegador da Web.
O aplicativo final pode ser construído e executado em uma foto via make app
, que usa dados baixados, em vez de raspar e agrupar os dados do zero. O alvo make all
é o que foi usado para criar os resultados finais para este repositório. Se a eliminação de dados, observe que o alto uso da API HISCORES pode resultar no bloqueio do seu IP. Por favor, seja poupar e respeitar os recursos do servidor da Jagex no seu uso deste código.
Execute make help
para ver mais alvos de nível superior.
Várias variáveis de ambiente são definidas para configurar o aplicativo.
OSRS_APPDATA_URI
: caminho para dados do aplicativo .pkl File (S3 ou local)OSRS_MONGO_URI
: URL na qual a instância do MongoDB está executandoOSRS_MONGO_COLL
: armazenar/recuperar os dados do jogador da coleção com este nomeTambém existem variáveis de ambiente que definem nomes de arquivos em cada estágio do pipeline de dados.
Os padrões para todas as variáveis de ambiente são definidos em .env.default
e importados sempre que um alvo make
é executado. Se existir um arquivo chamado .env
, quaisquer configurações substituirão as no .env.default
.
~/.aws
(Crie uma conta aqui) all
: todas as 23 habilidades OSRscb
: as 7 habilidades de combatenoncb
: as 16 habilidades não-combatn_neighbors=10
e min_dist=0.25
foram usados para divisões all
e noncb
; n_neighbors=20
e min_dist=0.25
foram usados para dividir cb
.Aqui estão algumas idéias para projetos de ciência de dados.