How a Data Scientist Improves His 3 Point Shoots in Basketball
Apart from being a data scientist, I had been playing basketball since high school and I love this game.
Today is weekend and I am about to share some lightweight article on data, rather than some heavy coding tutorial. Fortunately, I have colorful life from playing basketball, one of the sport I routinely plays (not the only one, I am all sport enjoyer) and become a fan of Golden State Warriors.
I had been routinely playing basketball since senior high school, since almost all of boys in my class are enjoying this kind of sport. In the university, I continued the hobby, playing in ITB varsity intra-league. Unfortunately I took a break in this sport for nearly a year thanks to anterior cruciate ligament (ACL) injury.
Grew between 165-173 cm tall during high school to university, I played mainly on the guard position (except for the varsity intra-league, where I played small forward due to small ball strategy). Lack of power in the previous year, it was hard for me to score a 3 pointers. In the years, my role was more like ball distribution and defense against opponent’s guards.
Thanks to Stephen Curry who inspired me, by time goes I grow the ability to score a 3 point shoot. How could I? Train. Yep, learn like a machine learning. Note that this mindset was already established even before I started my first internship.
1. Log Your Grind
Here is one of my recent training log (and I also had match log, but not every match). The numbers denote the area of throws made. These are your datapoints.

Note: In the 3 PTS section, FTA should be FGA and FT% should be FG%
FGM = Field Goals Made (the success throws except free throws)
FGA = Field Goals Attempted (all of attempted throws except free throws)
FG% = Field Goals Percentage
FTM = Free Throws Made
FTA = Free Throws Attempted
FT% = Free Throws Percentage
2. Analyse Your Grind
From the data above, you can infer what is the best place to shoot. For me, number 11 area is the easiest one to score a 3 pointers. It makes sense, since I am a left-hander and it’s easier to score from inverted side for my case. Practice makes perfect, since actually my FG% increases over time. With more datapoints, you can make a machine learning-like prediction whether your shoot will success or not from various variables like shooting power, angle, opponent’s defense, wind, court roughness, and even shoes you wear.
Okay, now you found the sweet spot. Then, if you doing the same attempts over time, the opponents will learn how to stop you.
It is time for A/B test or multi-armed bandits. Develop your options. For me, since I am not good at cutting inside and lay up, I will rather make a good pass (passing is actually more complex but has less direct effect). Then, you can define a hypothesis for each experiment with knowledge on external condition (i.e I will face much taller guys so it’s better not to physically fight).
3. Try it
Yup, unfortunately you are also the one to made the “business decision” lol. After you tried, you can also evaluate the action. Create a match log, and back to step 1. Good luck and enjoy the process!
Anyway, you can imitate the steps for other sports, or even activities. This is only about applying a mindset.
About the Author
Salman is the Chief Data Officer at Allure AI, an emerging beauty-tech startup in Indonesia. He graduated from Astronomy and Astrophysics studies at Institut Teknologi Bandung. He is an avid reader, mountaineer, and developing interests in astronomy and computational neuroscience. Previously, he had an internship as an AI engineer in Konvergen AI, a software engineer at Chatbiz.id, and had a research assistantship in the astronomy department, as well as assisting various courses in astronomy, computational science, and management department.