Check out the deployed web app.
passing: creating a graph from player passing data, random walks to simulate possessions done on the frontend
positions: classifying NBA players into positions using a KNearestNeighbors classifier on season statistics
styles: clustering NBA teams and players based on their play styles determined by the frequencies of play types
tiers: clustering NBA players into tiers using the k-means clustering algorithm on advanced statistics
All the data was scraped from the NBA's publicly available stats
All of the needed libraries can be installed using pip install -r requirements.txt
in the repository directory.
Install the package using python setup.py install
.
Unless you have the required database URI, change the package config.py
file to have data_source = 'local'
.
Prior to running the app, you will likely want to scrape the data, to do this run python nba_analysis/scraping/*.py
. Do this after changing the package config so that the data is downloaded locally. All the data should be downloaded into the directory nba_analysis/data/
.
To run the web app, run python runserver.py
and point your browser to http://localhost:5000/
.
Alternatively, to run individual analyses, navigate to the nba_analysis/analysis
directory (must enter subdirectory due to hard-coded data paths) and run python <analysis_script> <params>
.
All of these experiments/mini-projects are more for proof-of-concept and practice than true analysis. The analysis is rudimentary and the scikit-learn algorithms used could be tuned much further by manipulating parameters.