HeadlinesBriefing HeadlinesBriefing.com

Python Model Separates Shot Selection From Shot Making

Towards Data Science •
×

In basketball, field-goal percentage tells us how often a player makes a shot. But what about the shots' difficulty? Let's use Python and machine learning to separate shot selection from shot making. Two NBA players can both shoot 40% from three-point range, but their shot quality differs dramatically. One takes open catch-and-shoot attempts from the corners, while the other regularly attempts difficult pull-up threes with a defender in front. Looking at shooting percentages alone suggests they are equally good, but this approach separates shot selection from shot making.

The article explains that field-goal percentage reflects both shot difficulty and player ability, making player evaluation complicated. The proposed solution estimates the probability of making every shot based on its characteristics, then compares that probability with the actual outcome. This provides two useful pieces of information: shot selection (how valuable are the shots taken, on average?) and shot making (how many points does the player score above or below expectation?).

The model uses simple features like shot distance, whether the attempt is a two-pointer or three-pointer, shot type, corner three-pointers, and shot clock timing. While this simpler model accepts not capturing every aspect of difficulty, it serves as a foundation for more complex analysis. The dataset includes 12 players and 18,000 shots with varying characteristics. The complete code is available on GitHub for reproducibility, though the author uses randomized synthetic data to keep the focus on the modeling approach rather than specific player comparison.

Source: Towards Data Science · Summarized by HeadlinesBriefing