Analisis kuantitatif dari runescape sekolah tua Hiscores.
Repositori ini menyumbang yang berikut:
Dataset terdiri dari file -file berikut:
player-stats.csv
: Tingkat keterampilan di semua 23 keterampilan untuk 2 juta akun OSRS teratas.cluster-centroids.csv
: Nilai pusat untuk cluster yang muncul dari mempartisi dataset pemain ke dalam grup berdasarkan kesamaan akun. Setiap centroid adalah vektor nilai antara 1-99 dalam ruang "keterampilan OSRS".player-clusters.csv
: ID cluster per pemain untuk tiga run clustering terpisah, mengelompokkan akun serupa dengan melihat (i) semua keterampilan, (ii) hanya keterampilan tempur dan (iii) hanya keterampilan non-tempur.player-stats-raw.csv
: peringkat, level, xp, petunjuk, minigame dan statistik bos untuk 2 juta pemain OSRS teratas. File ini adalah output mentah dari proses pengikis (1,7 GB).File -file ini tidak diperiksa ke repo karena kendala ukuran file. Mereka dapat diunduh secara terpisah dari Google Drive: https://bit.ly/osrs-hiscores-dataset
Statistik pemain dikumpulkan dari Hiscores OSRS resmi selama 24 jam pada 21 Juli 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.
Pada tingkat tinggi, repositori ini mengimplementasikan pipa ilmu data:
scrape OSRS hiscores data
↓
cluster players by stats
↓
project clusters to 3D
↓
build application data
bersama dengan aplikasi DASH untuk memvisualisasikan hasil.
Tahap pipa data didorong oleh makefile dengan make
level atas untuk setiap tahap pemrosesan:
make init
: Mengatur lingkungan proyek dan menginstal dependensi.make scrape
: Mengikis data dari Hiscores OSR resmi dan berubah menjadi dataset yang dibersihkan.make cluster
: cluster pemain ke dalam kelompok akun serupa sesuai dengan statistik mereka. Menggunakan K-Means sebagai algoritma pengelompokan, diimplementasikan oleh Perpustakaan FAISS.make postprocess
: Proyeksikan cluster centroid dari ruang dimensi tinggi ke 3D untuk keperluan visualisasi (UMAP adalah algoritma yang digunakan untuk pengurangan dimensi). Hitung kuartil untuk setiap cluster berdasarkan populasi pemain yang dikandungnya.make build-app
: Bangun Data Aplikasi dan Basis Data menggunakan semua hasil analitik sebelumnya. Target ini akan meluncurkan instance MongoDB di dalam wadah Docker di URL localhost:27017
(secara default). Langkah 2 dan 3 dapat (dan harus) dilewati hanya dengan menjalankan make download-dataset
, yang mengambil data yang dikikis dan hasil pengelompokan dari ember S3. Ini membutuhkan akun AWS dengan kredensial yang terletak di direktori ~/.aws
.
Untuk meluncurkan aplikasi, jalankan make run-app
dan kunjungi URL localhost:8050
di browser web.
Aplikasi akhir dapat dibangun dan dijalankan dalam satu bidikan melalui make app
, yang menggunakan data yang diunduh daripada mengikis dan mengelompokkan data dari awal. Target make all
adalah apa yang digunakan untuk membangun hasil akhir untuk repo ini. Jika mengikis data, perhatikan bahwa penggunaan API Hiscores yang tinggi dapat mengakibatkan IP Anda diblokir. Harap hemat dan menghormati sumber daya server Jagex dalam penggunaan kode ini.
Jalankan make help
untuk melihat lebih banyak target tingkat atas.
Sejumlah variabel lingkungan diatur untuk mengkonfigurasi aplikasi.
OSRS_APPDATA_URI
: jalur ke data aplikasi .pkl file (S3 atau lokal)OSRS_MONGO_URI
: url di mana instance mongodb berjalanOSRS_MONGO_COLL
: menyimpan/mengambil data pemain dari pengumpulan dengan nama iniAda juga variabel lingkungan yang mendefinisikan nama file pada setiap tahap pipa data.
Default untuk semua variabel lingkungan didefinisikan dalam .env.default
dan diimpor setiap kali target make
dijalankan. Jika ada file yang disebut .env
, pengaturan apa pun di sana akan mengesampingkan yang ada di .env.default
.
~/.aws
(Buat akun di sini) all
: Semua 23 Keterampilan OSRScb
: 7 Keterampilan Tempurnoncb
: 16 keterampilan non-tempurn_neighbors=10
dan min_dist=0.25
digunakan untuk pemisahan all
dan noncb
; n_neighbors=20
dan min_dist=0.25
digunakan untuk cb
split.Berikut adalah beberapa ide untuk proyek sains data.