My approach was to group all similar players in the NBA using K-Means Clustering. I then looked at all 5-player lineup combinations over the past 20 years and looked at which groups made up each lineup. By determining the performance level of a 5-group combination in a lineup, I could quantify the chemistry of that group mixture. And finally, I fit today’s NBA rosters into the best lineup combinations to see if teams were playing the optimal player personnel. Check out my R Shiny app using this link: https://dannyleese.shinyapps.io/Player_Chemistry/ Check out the full article here: https://medium.com/the-sports-scientist/quantifying-nba-player-chemistry-d6c4fa8f016e The R shiny code is in the "shinychemistry.r file. If you want to update the CSV files, the code for web scraping and manipulating the data can be found in the perpossandadv.r file.