구식 Runescape Hiscores의 정량 분석.
이 저장소는 다음을 제공합니다.
데이터 세트는 다음 파일로 구성됩니다.
player-stats.csv
: 상위 2 백만 개의 OSR 계정에 대한 23 기술 모두의 기술 수준.cluster-centroids.csv
: 계정 유사성에 따라 플레이어 데이터 세트에서 그룹으로 분할하는 클러스터의 중심 값. 각 중심은 "OSRS 기술"공간에서 1-99 사이의 값의 벡터입니다.player-clusters.csv
: 3 개의 별도 클러스터링 실행에 대한 플레이어 당 클러스터 ID, (i) 모든 기술, (ii) 전투 기술 만 및 (iii) 비 콤바트 기술 만 보면 유사한 계정을 그룹화합니다.player-stats-raw.csv
: 상위 2 백만 개의 OSRS 플레이어에 대한 순위, 레벨, XP, 단서, 미니 게임 및 보스 통계. 이 파일은 스크래핑 프로세스 (1.7GB)의 원시 출력입니다.이 파일은 파일 크기 제약으로 인해 리포지션에 체크인되지 않습니다 . Google 드라이브와 별도로 다운로드 할 수 있습니다 : https://bit.ly/osrs-hiscores-dataset
플레이어 통계는 2022 년 7 월 21 일 24 시간 동안 공식 OSRS Hiscores에서 수집되었습니다.
├── 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.
높은 수준 에서이 저장소는 데이터 과학 파이프 라인을 구현합니다.
scrape OSRS hiscores data
↓
cluster players by stats
↓
project clusters to 3D
↓
build application data
결과 시각화를위한 대시 응용 프로그램과 함께.
데이터 파이프 라인의 단계는 각 처리 단계에 대한 최상위 make
대상이있는 Makefile에 의해 구동됩니다.
make init
: 프로젝트 환경을 설정하고 종속성을 설치하십시오.make scrape
: 공식 OSRS Hiscores에서 데이터를 긁어 내고 정리 된 데이터 세트로 변환하십시오.make cluster
: 클러스터 플레이어를 통계에 따라 유사한 계정 그룹으로 만듭니다. FAISS 라이브러리에서 구현 한 클러스터링 알고리즘으로 k-means를 사용합니다.make postprocess
: 시각화 목적으로 고차원 공간에서 3D로 클러스터 중심을 투사하십시오 (UMAP는 치수 감소에 사용되는 알고리즘입니다). 포함하는 플레이어 모집단을 기반으로 각 클러스터에 대한 사 분위수를 계산합니다.make build-app
: 모든 이전 분석 결과를 사용하여 응용 프로그램 데이터 및 데이터베이스를 구축하십시오. 이 대상은 URL localhost:27017
(기본적으로)의 Docker 컨테이너 내부에서 MongoDB 인스턴스를 시작합니다. 2 단계와 3 단계는 단순히 make download-dataset
실행하여 건너 뛸 수 있습니다. ~/.aws
디렉토리에 자격 증명이있는 AWS 계정이 필요합니다.
응용 프로그램을 시작하려면 make run-app
실행하고 웹 브라우저에서 URL localhost:8050
방문하십시오.
최종 응용 프로그램은 데이터를 스크래프하고 클러스터링하는 대신 다운로드 된 데이터를 사용하는 make app
통해 한 장면으로 구축 및 실행할 수 있습니다. 대상은 make all
것이이 repo의 최종 결과를 구축하는 데 사용 된 것입니다. 데이터를 스크래핑하는 경우 Hiscores API의 높은 사용으로 인해 IP가 차단 될 수 있습니다. 이 코드를 사용하여 Jagex의 서버 리소스를 아끼고 존중하십시오.
런은 더 많은 최상위 목표를 볼 수 있도록 make help
.
애플리케이션을 구성하기 위해 여러 가지 환경 변수가 설정됩니다.
OSRS_APPDATA_URI
: 응용 프로그램 데이터로가는 경로 .pkl 파일 (S3 또는 로컬)OSRS_MONGO_URI
: MONGODB 인스턴스가 실행중인 URLOSRS_MONGO_COLL
:이 이름으로 컬렉션에서 플레이어 데이터를 저장/검색데이터 파이프 라인의 각 단계에서 파일 이름을 정의하는 환경 변수도 있습니다.
모든 환경 변수에 대한 기본값은 .env.default
에 정의되며 make
Target이 실행될 때마다 가져옵니다. .env
라는 파일이있는 경우 .env.default
의 파일을 무시합니다.
~/.aws
디렉토리에 설치된 자격 증명이있는 AWS 계정 (여기에서 계정 작성) all
: 모든 23 개의 OSRS 기술cb
: 7 가지 전투 기술noncb
: 16 개의 비전열 기술n_neighbors=10
및 min_dist=0.25
all
및 noncb
에 사용되었습니다. n_neighbors=20
및 min_dist=0.25
분할 cb
에 사용되었습니다.데이터 과학 프로젝트에 대한 몇 가지 아이디어가 있습니다.