![]() |
*Using K-Means to Cluster ISFL Offensive Players - S24 - Printable Version +- [DEV] ISFL Forums (http://dev.sim-football.com/forums) +-- Forum: Community (http://dev.sim-football.com/forums/forumdisplay.php?fid=5) +--- Forum: Media (http://dev.sim-football.com/forums/forumdisplay.php?fid=37) +---- Forum: Graded Statistical Analysis (http://dev.sim-football.com/forums/forumdisplay.php?fid=153) +---- Thread: *Using K-Means to Cluster ISFL Offensive Players - S24 (/showthread.php?tid=25715) |
*Using K-Means to Cluster ISFL Offensive Players - S24 - wonderful_art - 09-17-2020 Using K-Means to Cluster ISFL Offensive Players – S24 Hey all, I’m wonderful_art. This place seems really, really cool, and as a stats / data science nerd, I instantly gravitated to the index and the statistics held there. With the season ended, I figured I’d try my hand at grabbing some stuff and seeing what I could do with it for fun. This project was using K-means clustering to group players into segments within their position. The result had some interesting takeaways vs just directly looking at the index and sorting by different stats which seemed like a pain. While you review the data below, remember that the cluster number doesn’t mean anything (its just referring to that node, not a ranking). So ‘cluster 3’ is not worse than ‘cluster 0’ … they are just different. That said, you’ll notice some clusters have objectively better stats than others, and I tried to explain them where possible. I used a Google Colab notebook and Python to do the analysis. For anyone else who is in / into data science, I used pandas’ read_html function which made it super easy to just pull this stuff directly from the html pages. Some normalization later (x - µ / σ) and I put it into scikit learn’s K-means algorithm which spit out the following clusters. If you want to check out the Google Colab notebook, here's the link. The visualizations are interactive under the Visualizations header. Apologies for the poorly commented code, as I mostly sped through it. Next I’m planning on doing defenses and clustering them together. I’m also looking at pulling NFL players for creating the clusters based on NFL stats and then predicting the NFL cluster for ISFL players. Want to also do similar work for DSFL players. And I’m saving these for next season, where we can see how players move in clusters. Perhaps later on I'll deploy to heroku as well for more interactivity. Here are the results, a graph and some interesting notes per group: ![]() Quarterbacks - 4 Clusters 3 - 5033.0 Yards - 53.9 Pct - 32.0 TDs - 19.0 Int - Banks II, D. - SAR 3 - 4152.0 Yards - 55.7 Pct - 23.0 TDs - 17.0 Int - Cue, J. - AZ 1 - 4225.0 Yards - 61.5 Pct - 21.0 TDs - 11.0 Int - Armstrong, F. - OCO 1 - 4192.0 Yards - 59.0 Pct - 22.0 TDs - 9.0 Int - Cole, E. - AUS 1 - 4002.0 Yards - 62.5 Pct - 31.0 TDs - 9.0 Int - McDummy, W. - COL 1 - 3974.0 Yards - 57.6 Pct - 20.0 TDs - 9.0 Int - O'Donnell, G. - CHI 2 - 3708.0 Yards - 58.5 Pct - 21.0 TDs - 8.0 Int - Jack, M. - SJS 2 - 3605.0 Yards - 56.0 Pct - 22.0 TDs - 8.0 Int - Slothlisberger ®, B. - NO 2 - 3077.0 Yards - 57.5 Pct - 19.0 TDs - 8.0 Int - Skywalker ®, L. - HON 4 - 3524.0 Yards - 57.5 Pct - 15.0 TDs - 13.0 Int - Phoenix, B. - PHI 0 - 3524.0 Yards - 53.0 Pct - 25.0 TDs - 16.0 Int - Jack ®, C. - YKW 0 - 3414.0 Yards - 51.7 Pct - 22.0 TDs - 17.0 Int - Fujiwara, C. – BAL Quarterback
![]() Runningbacks - 4 Clusters 2 - 1233.0 Yards - 299.0 Att - 12.0 TDs - 4.1 Avg - Nakamura, T. - OCO 2 - 1161.0 Yards - 286.0 Att - 8.0 TDs - 4.1 Avg - Torenson, S. - PHI 2 - 1051.0 Yards - 273.0 Att - 11.0 TDs - 3.8 Avg - Lackson, J. - SJS 2 - 1048.0 Yards - 259.0 Att - 8.0 TDs - 4.0 Avg - Mendonca, M. - AUS 2 - 993.0 Yards - 242.0 Att - 10.0 TDs - 4.1 Avg - Ayers ®, N. - HON 2 - 910.0 Yards - 218.0 Att - 10.0 TDs - 4.2 Avg - Skyline, A. - YKW 2 - 881.0 Yards - 200.0 Att - 7.0 TDs - 4.4 Avg - Owens, A. – COL 3 - 1161.0 Yards - 253.0 Att - 3.0 TDs - 4.6 Avg - Toriki, M. - NO 0 - 967.0 Yards - 234.0 Att - 6.0 TDs - 4.1 Avg - Jones, K. - AUS 0 - 952.0 Yards - 264.0 Att - 7.0 TDs - 3.6 Avg - Williams, D. - BAL 0 - 907.0 Yards - 245.0 Att - 4.0 TDs - 3.7 Avg - Kane-Maika'i, K. - HON 0 - 872.0 Yards - 241.0 Att - 6.0 TDs - 3.6 Avg - Cardrissian, R. - SJS 0 - 808.0 Yards - 208.0 Att - 6.0 TDs - 3.9 Avg - Tirtawidjaja, J. - CHI 0 - 783.0 Yards - 201.0 Att - 6.0 TDs - 3.9 Avg - Gump, F. - NO 0 - 744.0 Yards - 192.0 Att - 6.0 TDs - 3.9 Avg - Fukushu ®, M. - BAL 0 - 697.0 Yards - 182.0 Att - 4.0 TDs - 3.8 Avg - Petrongolo ®, J. - AZ 0 - 694.0 Yards - 188.0 Att - 6.0 TDs - 3.7 Avg - Dotson, F. - PHI 0 - 574.0 Yards - 138.0 Att - 7.0 TDs - 4.2 Avg - Back, R. - SAR 0 - 468.0 Yards - 127.0 Att - 5.0 TDs - 3.7 Avg - Keppler ®, Z. - AZ 1 - 608.0 Yards - 137.0 Att - 2.0 TDs - 4.4 Avg - Gilbert, R. - COL 1 - 368.0 Yards - 98.0 Att - 3.0 TDs - 3.8 Avg - McZeal ®, K. - OCO 1 - 42.0 Yards - 9.0 Att - 0.0 TDs - 4.7 Avg - Skuff, R. – BAL Runningback
![]() Wide Receivers - 8 Clusters 7 - 1406.0 Yards - 75.0 No - 7.0 TDs - 18.7 Avg - Thomas-Fox, D. - SJS 7 - 1346.0 Yards - 84.0 No - 8.0 TDs - 16.0 Avg - Donut, S. - AZ 7 - 1316.0 Yards - 78.0 No - 9.0 TDs - 16.9 Avg - Gaines, N. - AUS 7 - 1312.0 Yards - 63.0 No - 8.0 TDs - 20.8 Avg - Witheblock, M. - SAR 7 - 1271.0 Yards - 67.0 No - 7.0 TDs - 19.0 Avg - Gordon, R. - SAR 4 - 1349.0 Yards - 88.0 No - 5.0 TDs - 15.3 Avg - O'Leary, S. - CHI 4 - 1208.0 Yards - 81.0 No - 6.0 TDs - 14.9 Avg - Vuxta, R. - PHI 4 - 1206.0 Yards - 77.0 No - 7.0 TDs - 15.7 Avg - Trunks, F. - OCO 4 - 1164.0 Yards - 76.0 No - 4.0 TDs - 15.3 Avg - Podolak, J. - HON 4 - 1145.0 Yards - 69.0 No - 5.0 TDs - 16.6 Avg - Barker, E. - NO 4 - 1034.0 Yards - 71.0 No - 5.0 TDs - 14.6 Avg - Jeeta, E. - AUS 4 - 998.0 Yards - 65.0 No - 4.0 TDs - 15.4 Avg - Passmann, T. - AZ 0 - 1103.0 Yards - 68.0 No - 7.0 TDs - 16.2 Avg - Sakura ®, K. - YKW 0 - 1080.0 Yards - 68.0 No - 13.0 TDs - 15.9 Avg - Lim, W. - COL 0 - 1014.0 Yards - 60.0 No - 8.0 TDs - 16.9 Avg - Kaepercolin, N. - BAL 0 - 866.0 Yards - 53.0 No - 8.0 TDs - 16.3 Avg - Quinn, A. - BAL 0 - 828.0 Yards - 52.0 No - 7.0 TDs - 15.9 Avg - Hood, T. - SJS 0 - 646.0 Yards - 41.0 No - 9.0 TDs - 15.8 Avg - Jenkins ®, L. - COL 3 - 831.0 Yards - 58.0 No - 3.0 TDs - 14.3 Avg - Kingston, J. - COL 3 - 777.0 Yards - 52.0 No - 4.0 TDs - 14.9 Avg - Rodriguez, B. - CHI 3 - 744.0 Yards - 52.0 No - 4.0 TDs - 14.3 Avg - Swift, N. - SJS 3 - 646.0 Yards - 41.0 No - 5.0 TDs - 15.8 Avg - Snyder ®, S. - NO 3 - 575.0 Yards - 36.0 No - 4.0 TDs - 16.0 Avg - Cash Jr. ®, S. - YKW 3 - 554.0 Yards - 40.0 No - 3.0 TDs - 13.8 Avg - Varga, N. - PHI 3 - 515.0 Yards - 33.0 No - 1.0 TDs - 15.6 Avg - Kross, C. - BAL 3 - 486.0 Yards - 29.0 No - 4.0 TDs - 16.8 Avg - Bodenhamer ®, B. - NO 6 - 711.0 Yards - 41.0 No - 4.0 TDs - 17.3 Avg - Panda, F. - PHI 5 - 649.0 Yards - 60.0 No - 6.0 TDs - 10.8 Avg - Alexander, W. - HON 5 - 620.0 Yards - 44.0 No - 6.0 TDs - 14.1 Avg - Despacito Jr. ®, G. - OCO 5 - 500.0 Yards - 42.0 No - 6.0 TDs - 11.9 Avg - Jackson, A. - YKW 5 - 479.0 Yards - 55.0 No - 4.0 TDs - 8.7 Avg - Clay, J. - HON 1 - 545.0 Yards - 45.0 No - 2.0 TDs - 12.1 Avg - Mongo, H. - OCO 1 - 431.0 Yards - 41.0 No - 2.0 TDs - 10.5 Avg - Videl-San ®, N. - AUS 1 - 399.0 Yards - 33.0 No - 2.0 TDs - 12.1 Avg - Bur'Berry, J. - AZ 1 - 356.0 Yards - 34.0 No - 4.0 TDs - 10.5 Avg - Scabbia ®, L. - CHI 1 - 331.0 Yards - 31.0 No - 4.0 TDs - 10.7 Avg - Lee, M. - YKW 1 - 330.0 Yards - 25.0 No - 2.0 TDs - 13.2 Avg - Tidwell, R. - AUS 1 - 130.0 Yards - 11.0 No - 2.0 TDs - 11.8 Avg - Oberwald, G. - CHI 2 - 57.0 Yards - 8.0 No - 0.0 TDs - 7.1 Avg - Z, D. - HON 2 - 17.0 Yards - 2.0 No - 0.0 TDs - 8.5 Avg - Z, D. - OCO 2 - 7.0 Yards - 1.0 No - 0.0 TDs - 7.0 Avg - Z, D. – AZ Wide Receiver
![]() Tight Ends - 4 Clusters 2 - 1064.0 Yards - 106.0 No - 5.0 TDs - 10.0 Avg - Evans, H. - AZ 2 - 716.0 Yards - 70.0 No - 5.0 TDs - 10.2 Avg - McCormick, A. - NO 1 - 582.0 Yards - 61.0 No - 1.0 TDs - 9.5 Avg - Blocksdale Jr., A. - PHI 1 - 506.0 Yards - 61.0 No - 3.0 TDs - 8.3 Avg - Gelbman, T. - CHI 1 - 462.0 Yards - 50.0 No - 2.0 TDs - 9.2 Avg - Lewandowski, J. - BAL 1 - 390.0 Yards - 44.0 No - 3.0 TDs - 8.9 Avg - Rechs ®, Z. - YKW 3 - 493.0 Yards - 64.0 No - 3.0 TDs - 7.7 Avg - Boyd, C. - SAR 3 - 407.0 Yards - 52.0 No - 3.0 TDs - 7.8 Avg - Sauce, E. - COL 0 - 416.0 Yards - 62.0 No - 0.0 TDs - 6.7 Avg - McDavid, L. - SJS 0 - 215.0 Yards - 36.0 No - 0.0 TDs - 6.0 Avg - Hayes, V. - CHI 0 - 211.0 Yards - 33.0 No - 0.0 TDs - 6.4 Avg - Arrabiata, D. - PHI 0 - 132.0 Yards - 17.0 No - 0.0 TDs - 7.8 Avg - Larson, P. - AUS Tight Ends
RE: Using K-Means to Cluster ISFL Offensive Players - S24 - Pat - 09-17-2020 My god this article is a stat nerd's wet dream. Keep writing these. |