In this project, I will use k-means to Classify NBA prospects from the 2013 through and including the 2018 draft.
I am stopping for players drafted after 2018 since those players careers are still developing and it would not be so beneficial to draw conclusions on them yet…
Undrafted players are not even considered in this project.
To start the data will look like this and it comes from basketball reference with some extra metrics calculated from it by me
| …1 | year | Pk | Tm | Player | Yrs | G | MP | PTS | TRB | AST | FGP | F3P | FTP | MPG | PPG | RPG | APG | WS | WS_48 | BPM | VORP | GPY | VPY | PRA | WS_YR | YrsRate | Shares |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2013 | 1 | CLE | Anthony Bennett | 4 | 151 | 1905 | 658 | 472 | 77 | 0.392 | 0.261 | 0.670 | 12.6 | 4.4 | 3.1 | 0.5 | 0.5 | 0.013 | -4.8 | -1.3 | 37.75000 | -0.3250000 | 8.0 | 0.125000 | 0.3636364 | 0.0005518 |
| 1 | 2013 | 2 | ORL | Victor Oladipo | 10 | 504 | 16247 | 8503 | 2245 | 1970 | 0.436 | 0.347 | 0.788 | 32.2 | 16.9 | 4.5 | 3.9 | 25.6 | 0.076 | 0.7 | 11.0 | 50.40000 | 1.1000000 | 25.3 | 2.560000 | 0.9090909 | 0.0282530 |
| 2 | 2013 | 3 | WAS | Otto Porter Jr. | 11 | 527 | 13400 | 5419 | 2599 | 783 | 0.477 | 0.397 | 0.797 | 25.4 | 10.3 | 4.9 | 1.5 | 36.7 | 0.132 | 1.7 | 12.5 | 47.90909 | 1.1363636 | 16.7 | 3.336364 | 1.0000000 | 0.0405033 |
| 3 | 2013 | 4 | CHA | Cody Zeller | 11 | 552 | 11510 | 4376 | 3125 | 740 | 0.520 | 0.220 | 0.727 | 20.9 | 7.9 | 5.7 | 1.3 | 33.5 | 0.140 | -0.7 | 3.9 | 50.18182 | 0.3545455 | 14.9 | 3.045454 | 1.0000000 | 0.0369716 |
| 4 | 2013 | 5 | PHO | Alex Len | 11 | 644 | 11374 | 4534 | 3529 | 551 | 0.510 | 0.324 | 0.681 | 17.7 | 7.0 | 5.5 | 0.9 | 23.2 | 0.098 | -1.9 | 0.4 | 58.54545 | 0.0363636 | 13.4 | 2.109091 | 1.0000000 | 0.0256042 |
| 5 | 2013 | 6 | NOH | Nerlens Noel | 9 | 467 | 10281 | 3338 | 2835 | 501 | 0.546 | 0.200 | 0.655 | 22.0 | 7.1 | 6.1 | 1.1 | 28.3 | 0.132 | 0.9 | 7.4 | 51.88889 | 0.8222222 | 14.3 | 3.144444 | 0.8181818 | 0.0312328 |
Of the Available data here Win Shares is probaly the #1 way to classify a player as good pr bad
Notice some special metrics.
“GPY” is games per year
“VPY” is VORP per year
“PRA” is Pts+Rbs+Ast per game
“WS_YR” is Win Shares per year
“YrsRate” is the % of seasons that player has played since they were drafted
NOTE!!!![ euro stash players are being hurt here for the year(s) the play overseas (Jokic)]
I think this is actually in the spirit of the metric is being used here
“Shares” is the % of per year Win Shares that Player got from their own draft class, this one is my favorite
the models in this project will be only based on this “Shares” Metric!
Here we can see the expected range of % Win Shares Per Year, for a given draft position according to a simple linear model
This model (solid line) will be used to get around the “noise” caused by players like Rudy Gobert, Jalen Brunson, or Nikola Jokic, so that we can identify those players later as outliers
Now we compare a players “Shares” to what is expected of their draft position, and see what pops out
First we need to know how many types of players get drafted ie (Hits, Busts, or in between)
it looks like we could use 2 or 3 clusters on draft prospects, I think having a 3rd will help smooth out the results since some players are in-between being “hits” or “busts”
This is what that looks like
That is little difficult to see who is who beyond the hits, lets do a different graph for every 10 picks
Let me be clear, if you are anything but green the idea is you were probably a good pick, but if you are blue, you really excelled given your draft position AND draft class!
It must be understood that plenty of good players who were drafted high will not be blue because they were drafted high or come from a better class.
There is also still a bias against younger players who have not reached their peak yet.
And anywhere Win Shares has a blind spot, this will as well
Lets see this year over year, to ponder on past drafts
What is to be done next is to use machine learning to predict which prospects will be “blue” based on their draft profile.
To use AI to identify good value in the NBA draft, this appears to be best suited for picks outside the lottery, “sleepers”