If you’re reading this, thanks for watching!! Just wanted to emphasize that I am NOT AN EXPERT at this stuff. I purely made this video because I spent way too long on this project to not try to share the story with others! If you find videos like these interesting, let me know! My top priority is still CFB 25 but maybe someday I’ll start a second channel for more general sports analytics topics
CMC didnt practice all offseason. I'm not saying I woulda predicted it, but considering his heavy usage and injury history, there was more than enough doubt to not take him 1 overall.
From a data science point-of-view: backtest your models. Pretend like 2023 and beyond didn't happen, make your model draft a whole league of teams, and then give it the 2023 data to train itself on. Continue with each previous year, as far back as you want to go. This could also help the model identify the types of players that might break out, as opposed to drafting a specific player because that player is good, for example.
I feel like for a video like this it would be helpful to be showing more visuals to back up what you’re trying to convey. You said that your model was more accurate than the ESPN predictions, it’d be dope to see numbers on that just to see the magnitude cause that’s really cool
@@natemenzel6026 yeah I agree. I could have taken the time to show snippets of actual code or other stuff like that. Unfortunately this video has been sitting on my computer 80% completed for like 3 weeks now, so I willingly put out a B- video bc I was scared that if I took the time to get all the visuals, I’d never release it But if this goes well and ppl like it, I DEF have gotta do a better job of making this less of a talking head video
4:03 This is exactly what happened with Jayden Daniels for me. I was really high on him going into the fantasy draft. In almost every mock draft, I was picking either Kyler or JD. By the time pick 70 came around, everyone had already drafted a QB, which let me avoid reaching for JD. I was able to let him fall to me at his ADP since no one was drafting backup QBs yet.
Really fascinating video. You're right it's definitely hard to measure success with the absolute chaos and randomness of fantasy football. Maybe a thing worth considering is finding out which players the model loved like you mentioned top QB's and veteran WR's, then compare them to other players in that draft range. Or see if it predicted any sleeper late round hits. Probably easier to look at specifics then in totality. Keep up the great work, I love your analytics and data stuff. You obviously know your stuff.
Thank you!! And yeah, i think now that i have all this awesome data, i need to try to find out if QBs really do matter I’ll have to try to think a bit about how to measure that
@@maxplayscfb One reason the model might overvalue top qbs and veterans is because it’s predicting/maximizing median performance when in reality most of us care about getting first in the league, which almost never comes from a median performance if that makes sense. You could have it predict probability of winning the league or something like that. Then you could stratify the data by year, leaving the last year out of the model training. Then test how accurate its predictions are on team winning probabilities for each pick and each team for each league. It’d be interesting to see how the league size affects the value of variance, and whether or not it still values those top qbs and veterans.
I think the issue is a lot of the fantasy experts just evaluate the stats and don't watch and never played football that much. Being a talent evaluator is the most important part of fantasy over the stats, AI can't do that. It's about finding the guys whose stats don't match their potential that year
As a data scientist, this is a really cool idea and fun to try out. My approach is typically looking at a similar style of positional ranking with an emphasis on touches (I.e receptions + carries) as well as individual target share. There’s a whole lot more but really appreciate your insights and dedication, keep up the awesome work!
Hey Max, I’m a big fan and I love this video. I’m also a Data Scientist and have spent my fair share of time trying to solve this problem in a similar way. Here are a few of my thoughts on what else you may want to consider and what I have found is helpful: 1. When evaluating projected player performance, I’ve always liked including projection ceilings and floors (available on FantasyPros) as a part of the calculation. This gives me an idea of the risk a certain player has or how high a player could go in a season. You’d have to set the model to be aggressive or conservative, might help you get a breakout rookie WR. 2. I wonder if your QB preference is skewed at all by points scored. You are building teams to score the most points, QBs score the most points. What you really need to solve is: 3. Drop off based on remaining players. Sometimes there is a huge difference between WR 5 and WR 8. Sometimes there’s almost no drop off between RB 15 and RB 28. This is why top QBs are rarely necessary for a winning team. QB 3 may average just a few points more than QB 8, but that is a much larger cavern for WR. Knowing the position you can wait on (like your TE example) is the key. But, that may have less to do with what your league mates are drafting and more to do with who are the remaining players. 4. In my opinion, this is less of an application for some type of predictive model and more an application for an optimization engine. I’m curious what sort of optimization simulations you could run on this topic. Finally, here is a link to a paper that one of my coworkers was a co-author of on the draft optimization topic. Definitely recommend it if you want to research more: www.sciencedaily.com/releases/2007/08/070823170012.htm I’d love to connect further to discuss if you’d like! Keep up the great work!
thank you for reaching out and for such a detailed viewpoint on this project! Will definitely look into that paper. Would also love to talk more about this specific application and your background on it! My email for this profile is maxplayscfb@gmail.com, id love to connect!
I think #3 is really the key point. The other problem could be that the model would view a swingy player and consistent player the same if it’s just working off of averages. However, if the streaks are somewhat predictable based on opponent, weather, etc, then a drafter who has the ability to swap players around each week might actually prefer the swingier player. After all, you don’t win fantasy football by having the highest average point total at the end of the year, you win it by winning your matchup each week
#3 is actually what the whole thing should be trying to solve for. It's how I evaluate my drafts ahead of time. So if a 10 team league, I'm looking at differential between QB1 and QB10. While I don't have exact data points, when I've done some calculations on these I've found: -Pt differential between QBs is among the lowest of any position. So while someone may have allen, or mahomes in many years, you can easily be in the same ballpark with a player like dak or baker mayfield or kirk cousins, etc. -I actually value running backs more than most people, because they touch the football more and they are a scarcer commodity. There tends to be more dropoff at running back than at WR, so I like to take a top RB in the first couple of rounds if possible. - I normally stream tight ends throughout the season, but every now and again if a top one falls in my lap I will take him. This year I had both Kittle and Laporta fall to me at 6th round picks and Bowers was a 7th round pick so I took them because a top TE can be a massive pt differentiator if you get the right one.
I feel so lucky I found one of your videos last week and I have thoroughly enjoyed your work, perspective and analytical thinking towards CFB and now this video just sent me over the moon with excitement. 😅 I love this style of video and will be here for every single second of any further videos like this one. The idea I read in another comment about applying additional chart and graphics of analytical data would be fantastic. Thank you for sharing your wonderful mind with us here! I really appreciate you.
This is awesome man. Based on the plots you’re showing, it looks like you’re using R to do your analysis. If you know python, I am building a strongly typed ESPN API wrapper package that gives the user access to live and historical data. I plan to build some machine learning models and possibly stochastic simulation models to predict player stats, team stats, etc.. I know R (possibly more than python) so if you’re looking to expand your model or looking to team up let me know. The benefit of using the ESPN API is you get access to specific venues, coaching, referees, lines, injuries, and A LOT more.
Things to consider in your next iteration: 1) A player in the regular season mostly just needs to get you to the playoffs, while a player in the in the playoffs needs to regularly be the best performer. I often draft lower averaging players for players with easy schedules in the playoffs so they pop off in the playoffs. 2) Backups often don't score many points. The way your system works, a player that is worse but a starter will get drafted every time over a player that is better but a backup. For instance, would you rather have Jordan Mason or Zack Moss? And now what if you had already drafted Christian McCaffrey for the handcuff? 3) I'm not sure if you're considering this right now or not, but injuries. Alvin Kamara might be popping off early in the season, but he's an older workhorse RB. The likelihood of him getting hurt was quite high. He did get banged up already, but what's the likelihood he's going to be popping off come playoff time? Getting you 0 points in the playoffs because he's not playing makes him a huge disappointment no matter how well he did in the regular season. 4) Throw out Week 1. It's a weird week where crazy stuff happens.
1.) I agree, good point. 2.) I agree, good point. 3.) No one can accurately predict injuries. They are often freak accidents. Age is already priced into players values, it’s why Alvin Kamara wasn’t going as high as he should’ve been. 4.) This is bad math. Outliers happen every week. People just tend to to over value week 1 because it’s the first week. Isiah Likely will probably (likely) have another good game this season. Absolutely no reason to throw out week one for an AI. For Humans, quit trying to draw conclusions so fast.
@@TheJuxify A) I also forgot combos, like having a QB-WR combo can spike scores and win games. That's a strategy element, though, and not everybody believes in it, kind of like handcuffing. It also means that if the team sucks both players are more likely to suck instead of just one that can maybe be overcome. 4) I'm not talking about a single outlier. There are actually reasons why Week 1 is different than other weeks. Teams are coming off a whole offseason of rest. Players are rusty. Look at the career of Aaron Rodgers. His team gets crushed just about every year Week 1 and then they end up bouncing back and making the playoffs. Rodgers is known not to put as much effort into the offseason as other players and doesn't participate much in preseason so that probably plays a role. But these aren't just outliers. Run the numbers over time and you'll see it's not just random, that bad teams do way better in Week 1.
This is an interesting project. I go into my 12 team fantasy league (same people for 10+ years now) with the tactic that whatever I do keep the following in mind: 1 - QBs will go early in this league 2 - Load up on RB/WR 3 - never draft a Kicker or Defense too early 4 - Zig when others zag. I have won 3 times which is more than anyone else. Overall had more success than the rest of the league. I would love to come up with a model and make an AI version to model my league.
If you want a general idea of how much better it is to use the model, you’d see how many of your 5 teams make the playoffs when you do vs when you don’t use it. If last year you didn’t use it and 3/5 teams missed the playoffs but you use it this year and 5/5 teams make the playoffs, you know it put you in an advantageous position. (Trades and waiver wire aside).
I agree with getting a QB early because the ppg difference between qb1 and qb10 is going to outweigh the ppg difference between rb/wr1 and rb/wr10, even if you are playing multiple of those positions. You have to get at least three truly top tier players to justify not getting a quarterback early.
I used to play in a 2QB league for about 10 years - in those drafts [2010-2021] QBs, while not the 1st to go, started to go in Rd 3/4 - as the season went on, QBs on the waiver wire were top priorities, even backups. I think the fact that QBs actually put up the most FFP is obscured by the fact that in 10 to 12 player leagues with one QB, there is plenty of talent to go around.
I absolutely love this. New to your channel but a HUGE fan of how you think. I tend to say, "If you're going to do something, overdo it." Seems like you follow a similar logic with some of these videos.
Great video! I’ve thought of doing something similar given my 25+ years playing FFL. I’m excited to see how AI will change things. Especially throughout the season with waivers, injuries, trades, etc…
I thoroughly enjoyed this thank you. I think you would really enjoy JJ Zachariason, a fantasy football analyst that's heavily investing into his models that he's set up with analytics and really pushed the late round QB game theory back when QB's were so overvalued long ago. I feel like there is a lot of game theory with drafting teams and I wonder if your model factored any of that in?
Damn this is an interesting deep dive. I will say it’s definitely hard to account for hunches with the stats you are using for your model but hey thats an algorithm right?! But still interesting to see how your team drafted because i was typically the same, waiting to later rounds to snag a QB and TE but the NFL has changed and its not even the same it was when I played fantasy in 2017. Plus you gotta really have a good feeling and amount of knowledge about a team/player nowadays to really make a solid pick. I view fantasy as more in like a scout perspective so this year has also definitely been tough, especially looking back on who i passed up during my drafts. (Has me considering a MJ retirement stint as a fantasy manager)
This is an awesome project! It's very interesting to see the model prioritize early QB like many first time drafters would. As far as inputs to improve the model I have a couple thoughts/suggestions: -In addition to player ADP it would be worth considering sportsbooks' projections of players' seasonal performance. I would guess that sportsbooks projections would actually beat fantasy positional ADP alone. -Inclusion of WAR in some capacity would be interesting as it takes into account positional importance and player performance. WAR makes a distinction between the relative value difference between adjacent players at the position in the draft, whereas your choice of input for positional importance may not allow the model to recognize similarly valued players and tier gaps. (Josh Allen may have been in a tier of his own this year, but your model may not have been able to recognize if there were 5 similar QBs to target in the early rounds).
Also although I understand the tradeoff of trying to predict more than 12 weeks, there is a considerable loss in limiting it to 12 weeks. For example, in his rookie season ARSB averaged 7 ppg weeks 1-12 and 25 ppg weeks 13-17. This late surge during the fantasy playoffs is not atypical for rookie wide receivers and I imagine that finding these high upside young receivers is a big piece of winning fantasy championships.
This is a really cool video! My only suggestion/ask for the next iteration is to move away from consensus based metrics. Think AlphaGo vs AlphaZero, or stuff like that. Humans are good, but we also think like humans. You could probably do an iterative approach using consensus based decisions to emulate fantasy drafts and then train it on historical data from 2024. (That wasn’t the clearest sentence I’ve ever wrote, but basically randomly generated league size, format, draft position of the new model, etc., then have it play through an actual draft with the other teams’ picks coming from metrics like ADP, positional needs, etc.. Then, simulate the whole draft as if it was for the 2024 season, give it a score based on how well its team would have done in that simulated league, and optimize from there. That’s what I had in mind when writing this, but I’m by no means an expert so do what you think is best if you do want to do this). Regardless, great video and awesome job!
This is crazy because in a lot of my league's the guys who took QB early have some of the best performing teams. I'm talking QBs in first two rounds in a 1QB format.
You have a 50k team dataset. Build your model as one that would have drafted early, in the middle, and then late, and see how it would have performed against the other teams. It doesn't matter that your simulated player has players that were picked by other players in that league it matters that it made better choices based on the players that were available.
I think you could do that trade value aggregate valuation that is online to compare the value of chosen players to work through the success of the model
A lot of fantasy is about perception, how somebody values that person in their mind. And that's a hard thing to quantify. And I guess its a big reason of why its fun, chaos is fun.
I find that drafting people with recent proven years of consistent production (i.e. Mike Evans, George Kittle, Justin Jefferson) over guys who have had one really good year or had incredible talent but hadn't proven they can maintain that since or in an entire season (Mark Andrews, Kyle Pitts, Bijan Robinson, Breece Hall), to be very effective. You can get lots of rookies with surprising upside (Puka, Tank Dell, etc.) on waivers and having consistent reliable production from your draft picks is incredibly helpful.
I really believe incorporating player stats is incredibly important. The dataset you used bases player performance on draft position, which as you admit is the consensus opinion on a player. This isn’t necessarily problematic, but you have essentially built a model that has beliefs very close to the consensus but the model is logically consistent. I would predict in the long run this model does have an edge over humans with its logical consistency, but this also means there is a small standard deviation in season results. For most machine learning applications the smaller the standard deviation the better, but because in most fantasy leagues only the winner makes money, it is actually preferable to have a large standard deviation and lower average model performance if that results in more seasons of winning the league. For this reason the number of teams that make the playoffs is incredibly important to the model, as there is a massive difference in model outcomes at the playoff cusp. Getting back to why you need to incorporate player statistics is because you want the model to be making “risky” picks, the model needs more data to better identify diamonds in the rough. I know incorporating these suggestions into the model is far from easy to do, but i do not think you can beat the luckiest guy in your league by using the consensus opinion on players.
I’m also curious how you processed the data, which machine learning algorithm you used, and if you compared multiple algorithms. I assume because you mentioned it was a black box model it was either an unsupervised model or a neural network, but I’d like to know which one specifically.
I've been fantasy footballing for like 25 years, so drafted quite a few teams. What you've done is very interesting, but I didn't see any mention of bye weeks. That is a stat that I personally value far more than how many WRs each player has drafted so far or anything like that.
I feel like fantasy leagues are won by drafting players that outperform their expectation the most, so finding value late in drafts. I wonder if you could find the most undervalued players from past years, quantify their wins over replacement or the success rate of teams with those players as compared to teams without to verify the hypothesis and then identify the common characteristics to help identify those players i.e. years of experience, position on depth chart, team scoring, QB quality by team, 40 time, catch rate, targets per route run, etc..
Had an issue where I took CMC, then went WR heavy and got Jallen. But now I’m screwed starting braelon Allen and charbonet, both giving me 6 pts a game. I would argue it’s more valuable to get starting level RBs early, because there’s not as many options as there are at WR. 12 man league
Cool video. I see one glaring problem with that model tho. Your decision function being on median/mean points per pick or even per team will yield a solid team but not necessarily the highest expected value of winning/chip
If you don't mind spending a little bit of money, you could enter some best ball leagues on sleeper for a larger sample size. Is a slightly different format though
This doesn’t seem terribly far off of my basic draft strategy as a human player. In those early rounds, its absolutely better to go with a player that you know is going to perform barring injury. And outside of Breece Hall just simply not being used by a team with a QB with currently below league average play, Ive been happy with all of my picks in the first 7 rounds in all 3 of my leagues. Though instead of rushing to get a QB early, I try to get a top tier TE, or maybe even 2. As with the TE position, there’s typically only about 4 consistent point scoring TEs in the league, and getting 1 or even 2 both ensures that you have an advantage at the position, and limits what other teams can do at that position. Plus in all of my drafts Captain Kirk and Baker where available in the 12th round and later. Who are two QBs that you can depend on to get a decent points haul every week, yet somehow seem to start the wrong one of the two every bloody week Then in the later rounds, I try to pick up rookies and backup running backs. As they are typically good bank options with a massive upside, usually in the event of injury for when lets say the consensus number 1 pick gets put on LTIR Ive also completely ignored picking up defenses until the last two rounds, and pick up the surprise defense (or 2) of the season on the waiver wire to get me through the season, or just pick the team that’s playing against the Panthers
I think doing this in the context of best ball leagues could be a way to get more "reliable" data points on the success of these AI-drafted teams. It takes a lot of the chaotic elements completely out of the equation. Start/sit decisions aren't needed, there is no waiver wire, and you can check the finishing placement of the teams based strictly off of fantasy points generated, not W-L record.
Best ball would need some kind of player point variance factored in because a receiver that alternates 24 points and 0 points is worth more than someone that scores 12 every week.
This year is my first year doing fantasy football, going in I did an experiment. 0 QB, the QB position does not matter. There will always be a QB who can score 20 a game open, so I took Baker mayfield in the 15th (don’t act like that’s impossible in all leagues he was like 7% drafted) who is QB2 in fantasy. Stop wasting top picks on QBs
So was this trained on just last year? Because all the early RBs busted and the old wr’s killed it (Keenan and Mike Evans were like top 3 first 12 games last year I think). Also hurts and Allen were smash early picks last year so that makes sense. Feels like it just made its strat from what worked in drafts last year
Trained on drafts from 2018-2023 (however to me you’re right - that’s still not enough. If you look at the past half decade of fantasy data only, you’d prob come to the conclusion that the top ranked TE is worth it. In reality, is that true, or is that just talking about Travis kelce for 5 years???🤣🤣 except this year)
@@maxplayscfb yeah were years evenly sampled? Because I’d guess there were a lot more sleeper leagues last year than prior years. But idk I might just think that because I didn’t learn about sleeper until last year
@@maxplayscfb and I think it’s really cool it waited on te when everyone else had one. Maybe it also notices that there’s not much of a difference between a lower te and last round level te. Njoku laporta McBride were like last round picks last year LOL. Kinda repeating this year with Kraft ertz maybe
I have been using an algorithm I made for fantasy for about ten years now and I used the same 4 ideas to shape it. It’s not ai though I use inputs from fantasy point projections.
where do you obtain your historical data for making these predictions? Also, typically models give feature importances. Would be interesting to look at what features are most important.
Great video. The one point I'd disagree with is that nobody saw CMC going on IR. If you're familiar with Shanahan's history of running players into the ground and getting them injured, and his utter disregard for the limits of a human body, and then you saw CMC with a calf injury prior to the season after getting an ungodly number of carries the season prior - you had an inkling. This brings me to my next point which is my belief that the model would be greatly improved if it took into account the offensive coordinator and the history of players within that coordinators scheme. These guys are human and carry very deeply rooted beliefs in their systems. The OCs who believe in RB committees will run a committee, while others will prefer TE red zone targets or leveraging the slot. Adding data around the playbook, and possible plays can help predict breakouts for younger players, or players switching teams as well. ECR will often focus too much on talent over opportunity imo - but even a healthy CMC is going to bust if you put him in a system with zero running plays and zero passes to the rb.
@@griffinmpc8144 I'm sorry you have been coddled and lied to. Go look at how many rushes per season CMC had SINCE COLLEGE. Going on a tangent about the limits of the human body is nonsense
I agree. I had first pick this year and didn’t take CMC because I know his injury history and I know how the 9ers play. Admittedly I couldn’t tell you he’d go on IR but I didn’t think he was gonna be healthy for some time. I ended up going with Tyreek but he hasn’t gotten too many points with Tua getting hurt. That one was much harder to predict lol
If only you had a 12 team and a 10 team league of all AI that draft/manage for this to learn off of. That'd be interesting. Ultimately, it's hard to deny there is just a "feel" or "mojo" of how fantasy works. I've got leagues where I'm legitimately bad and the record reflects it. I've got ones where I am not scoring as well but stealing matchups until my WR's get stacked again. Variance in schedule can lead you down a false path, might be better just to track points scored for the season in case you're just getting the worst fantasy opponents each week.
good note -- the github repo for the WR project is github.com/iam-max-thompson/predicting_fantasy_points fair warning, it was for a school project so the repo is UGLY but there's a pretty comprehensive write up in there I have not added anything to github for this current iteration because it is a COMPLETE MESS. my goal over the next offsason is to clean it up, make it repeatable, and then make it public
Great video! I was curious - how were you able to access the data? Sleeper's API seems to only let you access league data using the league's ID, which isn't public. Right?
Most league IDs are public if you know the User ID So basically I generated a list of 500 “realistic sounding” usernames like MikeSmith or BobJones From there, I’d look up if the user was real and if they had associated leagues Once I had those leagues (let’s say bob smith was in 3), I could go grab all the User IDs from all 3 of bob’s leagues Now I have 25-35 unique user IDs and I could repeat the process So like a virus spreading through leagues, I was able to keep finding more and more
I don't think the veteran wr bias is weird. Outside of the superstar outliers, it takes a while for a wr to get used to the pro game. I remember the saying that year 3 is the breakout year for wr.
QB doesn't surprise me. The position is more consistent week to week and generally scores a lot of points, so it acts as a consistent floor on scoring.
Hey Max, really interested in this model and I have a few ideas, one of which I think could be super profitable. Would love to talk to you further about it.
I wonder if you can compare the picks it made to the results of the league. Maybe reward the model for picks that finished above adp. And that stay on the same roster. I don’t know anything about making these models but I’d be interested to know if you could add something like that to it.
Will your AI model be able to add/drop players on the waiver wire? Will it seek trades? Drop a player to IR or the w.w. if injured? Speaking of The Wire, you make a very good point about the limits of measuring AI's predictive worth and efficacy as the season goes on, and the data with which the model worked gets old. Can you feed current stats into the model as the season goes on?
I would love a break down of why my team I drafted was number 1 on power rankings before the start of the season on sites like Fantasy Pros and Flock Fantasy to now being 7 or higher. How did the rankings/predictions go that far off? I'm 2-4 and barely won those 2 games. I just dont know how it all went wrong after feeling like I won the draft.
The Puka thing was a bit predictable. In the same exact way Alvin Kamara was. They both were rookies in aging rooms. Kamara was drafted behind Ingram and old man Peterson. Same with Puka. Drafted onto a team with a weak WR room behind an old and I jury prone wr. Obviously they both panned out well, but it's about finding the situation, not the player. It's a much better plan than identifying the outlier talent and HOPING they get the opportunity. Find the opportunity and draft THAT. Don't look for Puka, look for the situation that allowed him.
At 3:05 did you give the positional value a score or how did you determine what the value was to train the model? Same for the 3 important attributes at 1:45?
Hey I'm an aspiring data science student trying to go to school for it next year. Some players are more risky than others obviously, so maybe there is some model that can guarantee a high floor while another is more risky but is more likely to win you the whole thing? This type of stuff is interesting to me
Yeah the whole high floor vs high ceiling vs best overall is something I thought about a lot too. Def worth considering which one of those 3 should be prioritized and where
Well you included the length of career in your model, so of course you’re going to get old guys, i don’t know if that’s really a valid training parameter, especially with great younger guys who certainly surpass some of the older ones.
Can’t you check how the model would do by simulating previous fantasy drafts and comparing its performance to the same player performance at that draft spot? Or if that data isn’t available then at least getting a rough estimate of how a mock draft would go using ADPs and doing 1000s of those drafts, then compare the avg performance to avg player performance?
im really hoping there are people that sit at the intersection of sports + analytics + youtube, and good to know i found someone!! ill keep trying to make more vids like this when i find time
Would you be able to share how you gathered the data for the initial source of 500,000 leagues? After looking into Sleeper's API, I can only see a way to get data from leagues where you know a username.
Ahahahahaha exactly. So here is what I did: 1. Use GPT to give me a list of 100 realistic sounding basic names “johnsmith” or “mikejones” Then add numbers to each so I have johnsmith1, 2, 3 etc Then use their api to see if the user exists If they do, then I go ahead and grab the leagues for that guy. Once I do that, I can go into all of johnsmith1’s leagues and grab all of his league mates too Now like a parasite I can crawl through all of those guys’ leagues and repeat the process🤣
This was just recommended to me, and I can tell you - and would link you to my blog if I could - that I had CMC missing half the season long before the season started. Did you watch football last year and him massaging his calves on the sidelines and trying to fight off injury in the playoffs? This is one example of many why I don't like FF: a bunch of super casual stat nerds who don't actually watch or follow football like to parade around as if they were experts. It makes for bad/trash fans with terrible L takes.
Sure, you may have been one of the few that saw him coming, but the fact is that the vast majority of football watchers, expert or not, did not expect it. How do we know? Well, of all the casual fantasy football players like me, he had the highest ADP of any running back. Even of all the fantasy EXPERTS who 100% follow football as closely (if not closer) than you had him as their top choice with no comments of missing time. So sure, 0.001% of people can shout from the rooftops that “I saw it coming I swear!” - that’s fine, keep doing it. But it does not change the fact that the other 99.999 percent of people didn’t expect it.
1. I love the video 2. I love the breakdowns and takes. 3. I don't trust these "experts" on TV and in print. They aren't experts. They are the experts in the same way astrology is real. Remember, they get paid for engagement, not their accuracy. Their L takes just drive more traffic. 4. Each time I try to post my blog, my posts disappear. 5. I used to write guides to Madden Fantasy drafting, and while it is "different " than FF, also not really. Many of the things you said are things I have written about since the PS2. Valuing positions, taking risks, and when not to fall for a run on a position like the rest of the league, etc etc etc.
I’m a little bit disappointed by the decision to use ADP as the measure of player value. I think the biggest edge to be found with data science in fantasy is making better predictions about player performance.
Yeah I think there’s 2 key steps to fantasy dominance: 1. Be a better player performance evaluator than others 2. Use your performance predictions across all the positions to draft the right mix of guys This whole project was about part 2. I do agree with you tho, part 1 is pretty dang important too, but I view it as a separate project worthy of its own time
Honestly I'd be curious how much a good draft affects final league ranking. Obviously every win is good, but maybe as a whole a good draft is overrated to some extent
yeah thats a really good point -- itd be interesting to be like: Your draft grade is an A+ Mine is a C- Are you 10% more likely to make the playoffs? 50% more likely? etc
I think the AI doesn’t value certain positions. The ADP values certain positions so the AI reacts to that. My mindset, which has generally been successful for me, is that round 1 should have a fairly even distribution of positions drafted. The top WR should have a similar value to the top RB. ADP has traditionally overvalued RB so QB and WR will traditionally have a better value. It has gotten better over the years but 5-10 years ago the ADP would have like 90% RB in round 1. In a situation like that, I load up on all the other positions and the value gained is far better than the loss of having the worst at a popular position group.
The difference between RBs and WRs is that there's just fewer of them overall, especially those that get a large majority of their team's carries. Having them on your roster when your opponent doesn't is a competitive advantage.
Is this using llms? Josh allen has more content written about him in training set. Same with veteran vs young wrs. It is just predicting words that should come next. No smarts i dont think.
If you’re reading this, thanks for watching!! Just wanted to emphasize that I am NOT AN EXPERT at this stuff. I purely made this video because I spent way too long on this project to not try to share the story with others!
If you find videos like these interesting, let me know! My top priority is still CFB 25 but maybe someday I’ll start a second channel for more general sports analytics topics
You’re welcome
Please do! I would greatly appreciate a channel like that. I love numbers. 🤓😅🙂↕️
CMC didnt practice all offseason. I'm not saying I woulda predicted it, but considering his heavy usage and injury history, there was more than enough doubt to not take him 1 overall.
I'd be interested in seeing how you coded this up, what tools you used, etc.
Amazing video
From a data science point-of-view: backtest your models. Pretend like 2023 and beyond didn't happen, make your model draft a whole league of teams, and then give it the 2023 data to train itself on. Continue with each previous year, as far back as you want to go. This could also help the model identify the types of players that might break out, as opposed to drafting a specific player because that player is good, for example.
exactly what i was thinking towards the end of the video
Came here to say this
It's crazy to NOT do this
I feel like for a video like this it would be helpful to be showing more visuals to back up what you’re trying to convey. You said that your model was more accurate than the ESPN predictions, it’d be dope to see numbers on that just to see the magnitude cause that’s really cool
@@natemenzel6026 yeah I agree. I could have taken the time to show snippets of actual code or other stuff like that. Unfortunately this video has been sitting on my computer 80% completed for like 3 weeks now, so I willingly put out a B- video bc I was scared that if I took the time to get all the visuals, I’d never release it
But if this goes well and ppl like it, I DEF have gotta do a better job of making this less of a talking head video
It’s still fire nonetheless, but seeing the data would be a sick toucg
@@natemenzel6026I agree 100%
I can tell by all of the papers in the background you r very smart.
and then half your team gets injured by week 6 and none of it matters anymore
4:03 This is exactly what happened with Jayden Daniels for me. I was really high on him going into the fantasy draft. In almost every mock draft, I was picking either Kyler or JD. By the time pick 70 came around, everyone had already drafted a QB, which let me avoid reaching for JD. I was able to let him fall to me at his ADP since no one was drafting backup QBs yet.
I got Daniels and AR this season in a very similar way.
Really fascinating video. You're right it's definitely hard to measure success with the absolute chaos and randomness of fantasy football. Maybe a thing worth considering is finding out which players the model loved like you mentioned top QB's and veteran WR's, then compare them to other players in that draft range. Or see if it predicted any sleeper late round hits. Probably easier to look at specifics then in totality. Keep up the great work, I love your analytics and data stuff. You obviously know your stuff.
Thank you!! And yeah, i think now that i have all this awesome data, i need to try to find out if QBs really do matter
I’ll have to try to think a bit about how to measure that
@@maxplayscfb One reason the model might overvalue top qbs and veterans is because it’s predicting/maximizing median performance when in reality most of us care about getting first in the league, which almost never comes from a median performance if that makes sense. You could have it predict probability of winning the league or something like that. Then you could stratify the data by year, leaving the last year out of the model training. Then test how accurate its predictions are on team winning probabilities for each pick and each team for each league. It’d be interesting to see how the league size affects the value of variance, and whether or not it still values those top qbs and veterans.
I think the issue is a lot of the fantasy experts just evaluate the stats and don't watch and never played football that much. Being a talent evaluator is the most important part of fantasy over the stats, AI can't do that. It's about finding the guys whose stats don't match their potential that year
As a data scientist, this is a really cool idea and fun to try out. My approach is typically looking at a similar style of positional ranking with an emphasis on touches (I.e receptions + carries) as well as individual target share. There’s a whole lot more but really appreciate your insights and dedication, keep up the awesome work!
Hey Max, I’m a big fan and I love this video. I’m also a Data Scientist and have spent my fair share of time trying to solve this problem in a similar way.
Here are a few of my thoughts on what else you may want to consider and what I have found is helpful:
1. When evaluating projected player performance, I’ve always liked including projection ceilings and floors (available on FantasyPros) as a part of the calculation. This gives me an idea of the risk a certain player has or how high a player could go in a season. You’d have to set the model to be aggressive or conservative, might help you get a breakout rookie WR.
2. I wonder if your QB preference is skewed at all by points scored. You are building teams to score the most points, QBs score the most points. What you really need to solve is:
3. Drop off based on remaining players. Sometimes there is a huge difference between WR 5 and WR 8. Sometimes there’s almost no drop off between RB 15 and RB 28. This is why top QBs are rarely necessary for a winning team. QB 3 may average just a few points more than QB 8, but that is a much larger cavern for WR. Knowing the position you can wait on (like your TE example) is the key. But, that may have less to do with what your league mates are drafting and more to do with who are the remaining players.
4. In my opinion, this is less of an application for some type of predictive model and more an application for an optimization engine. I’m curious what sort of optimization simulations you could run on this topic.
Finally, here is a link to a paper that one of my coworkers was a co-author of on the draft optimization topic. Definitely recommend it if you want to research more: www.sciencedaily.com/releases/2007/08/070823170012.htm
I’d love to connect further to discuss if you’d like! Keep up the great work!
thank you for reaching out and for such a detailed viewpoint on this project! Will definitely look into that paper. Would also love to talk more about this specific application and your background on it! My email for this profile is maxplayscfb@gmail.com, id love to connect!
@@maxplayscfb Sent you an email 10/9
I think #3 is really the key point. The other problem could be that the model would view a swingy player and consistent player the same if it’s just working off of averages. However, if the streaks are somewhat predictable based on opponent, weather, etc, then a drafter who has the ability to swap players around each week might actually prefer the swingier player. After all, you don’t win fantasy football by having the highest average point total at the end of the year, you win it by winning your matchup each week
#3 is actually what the whole thing should be trying to solve for. It's how I evaluate my drafts ahead of time. So if a 10 team league, I'm looking at differential between QB1 and QB10. While I don't have exact data points, when I've done some calculations on these I've found:
-Pt differential between QBs is among the lowest of any position. So while someone may have allen, or mahomes in many years, you can easily be in the same ballpark with a player like dak or baker mayfield or kirk cousins, etc.
-I actually value running backs more than most people, because they touch the football more and they are a scarcer commodity. There tends to be more dropoff at running back than at WR, so I like to take a top RB in the first couple of rounds if possible.
- I normally stream tight ends throughout the season, but every now and again if a top one falls in my lap I will take him. This year I had both Kittle and Laporta fall to me at 6th round picks and Bowers was a 7th round pick so I took them because a top TE can be a massive pt differentiator if you get the right one.
I feel so lucky I found one of your videos last week and I have thoroughly enjoyed your work, perspective and analytical thinking towards CFB and now this video just sent me over the moon with excitement. 😅 I love this style of video and will be here for every single second of any further videos like this one. The idea I read in another comment about applying additional chart and graphics of analytical data would be fantastic. Thank you for sharing your wonderful mind with us here! I really appreciate you.
That’s awesome, thank you for the kind words!! And yeah, I’ll step up my chart game next time for sure
This is awesome man. Based on the plots you’re showing, it looks like you’re using R to do your analysis. If you know python, I am building a strongly typed ESPN API wrapper package that gives the user access to live and historical data. I plan to build some machine learning models and possibly stochastic simulation models to predict player stats, team stats, etc.. I know R (possibly more than python) so if you’re looking to expand your model or looking to team up let me know.
The benefit of using the ESPN API is you get access to specific venues, coaching, referees, lines, injuries, and A LOT more.
Forgot to mention - play-by-play data
@daviscotton7 you are way out of your depth bud
@@simivalleycrew what is that supposed to mean
@@daviscotton7 you probably made him feel dumb
Things to consider in your next iteration:
1) A player in the regular season mostly just needs to get you to the playoffs, while a player in the in the playoffs needs to regularly be the best performer. I often draft lower averaging players for players with easy schedules in the playoffs so they pop off in the playoffs.
2) Backups often don't score many points. The way your system works, a player that is worse but a starter will get drafted every time over a player that is better but a backup. For instance, would you rather have Jordan Mason or Zack Moss? And now what if you had already drafted Christian McCaffrey for the handcuff?
3) I'm not sure if you're considering this right now or not, but injuries. Alvin Kamara might be popping off early in the season, but he's an older workhorse RB. The likelihood of him getting hurt was quite high. He did get banged up already, but what's the likelihood he's going to be popping off come playoff time? Getting you 0 points in the playoffs because he's not playing makes him a huge disappointment no matter how well he did in the regular season.
4) Throw out Week 1. It's a weird week where crazy stuff happens.
1.) I agree, good point.
2.) I agree, good point.
3.) No one can accurately predict injuries. They are often freak accidents. Age is already priced into players values, it’s why Alvin Kamara wasn’t going as high as he should’ve been.
4.) This is bad math. Outliers happen every week. People just tend to to over value week 1 because it’s the first week. Isiah Likely will probably (likely) have another good game this season. Absolutely no reason to throw out week one for an AI. For Humans, quit trying to draw conclusions so fast.
@@TheJuxify A) I also forgot combos, like having a QB-WR combo can spike scores and win games. That's a strategy element, though, and not everybody believes in it, kind of like handcuffing. It also means that if the team sucks both players are more likely to suck instead of just one that can maybe be overcome.
4) I'm not talking about a single outlier. There are actually reasons why Week 1 is different than other weeks. Teams are coming off a whole offseason of rest. Players are rusty. Look at the career of Aaron Rodgers. His team gets crushed just about every year Week 1 and then they end up bouncing back and making the playoffs. Rodgers is known not to put as much effort into the offseason as other players and doesn't participate much in preseason so that probably plays a role. But these aren't just outliers. Run the numbers over time and you'll see it's not just random, that bad teams do way better in Week 1.
This is an interesting project. I go into my 12 team fantasy league (same people for 10+ years now) with the tactic that whatever I do keep the following in mind: 1 - QBs will go early in this league 2 - Load up on RB/WR 3 - never draft a Kicker or Defense too early 4 - Zig when others zag.
I have won 3 times which is more than anyone else. Overall had more success than the rest of the league. I would love to come up with a model and make an AI version to model my league.
If you want a general idea of how much better it is to use the model, you’d see how many of your 5 teams make the playoffs when you do vs when you don’t use it. If last year you didn’t use it and 3/5 teams missed the playoffs but you use it this year and 5/5 teams make the playoffs, you know it put you in an advantageous position. (Trades and waiver wire aside).
I agree with getting a QB early because the ppg difference between qb1 and qb10 is going to outweigh the ppg difference between rb/wr1 and rb/wr10, even if you are playing multiple of those positions. You have to get at least three truly top tier players to justify not getting a quarterback early.
I used to play in a 2QB league for about 10 years - in those drafts [2010-2021] QBs, while not the 1st to go, started to go in Rd 3/4 - as the season went on, QBs on the waiver wire were top priorities, even backups.
I think the fact that QBs actually put up the most FFP is obscured by the fact that in 10 to 12 player leagues with one QB, there is plenty of talent to go around.
I absolutely love this. New to your channel but a HUGE fan of how you think. I tend to say, "If you're going to do something, overdo it." Seems like you follow a similar logic with some of these videos.
Oh yeah I LIVE for overdoing it
My favorite RUclipsr by far
yo thank you!!!! i appreciate anyone that watches both the CFB25 stuff but also the random stuff like this LOL
Great video! I’ve thought of doing something similar given my 25+ years playing FFL. I’m excited to see how AI will change things. Especially throughout the season with waivers, injuries, trades, etc…
Thank you!! And yeah, week to week roster management sounds like a very interesting area to use analytics - but also a very hard area
I thoroughly enjoyed this thank you. I think you would really enjoy JJ Zachariason, a fantasy football analyst that's heavily investing into his models that he's set up with analytics and really pushed the late round QB game theory back when QB's were so overvalued long ago. I feel like there is a lot of game theory with drafting teams and I wonder if your model factored any of that in?
Damn this is an interesting deep dive. I will say it’s definitely hard to account for hunches with the stats you are using for your model but hey thats an algorithm right?! But still interesting to see how your team drafted because i was typically the same, waiting to later rounds to snag a QB and TE but the NFL has changed and its not even the same it was when I played fantasy in 2017.
Plus you gotta really have a good feeling and amount of knowledge about a team/player nowadays to really make a solid pick.
I view fantasy as more in like a scout perspective so this year has also definitely been tough, especially looking back on who i passed up during my drafts. (Has me considering a MJ retirement stint as a fantasy manager)
I have Jalen Hurts and a ton of WR’s. Let’s see how I do, this year!! So far I’m 3-2.
hopefully the WRs pan out!!
@@maxplayscfb so far, they have! Currently 5-3.
Great video! If you do this again next year, I would suggest adding Las Vegas odds to the model!
Amazing video! Hope you continue making these types of videos, trying (and failing) to reduce sports to numbers is honestly a very fun passtime
thank you!! at some point ill talk sports gambling, had a fun failure of a project once there too
This is an awesome project! It's very interesting to see the model prioritize early QB like many first time drafters would. As far as inputs to improve the model I have a couple thoughts/suggestions:
-In addition to player ADP it would be worth considering sportsbooks' projections of players' seasonal performance. I would guess that sportsbooks projections would actually beat fantasy positional ADP alone.
-Inclusion of WAR in some capacity would be interesting as it takes into account positional importance and player performance. WAR makes a distinction between the relative value difference between adjacent players at the position in the draft, whereas your choice of input for positional importance may not allow the model to recognize similarly valued players and tier gaps. (Josh Allen may have been in a tier of his own this year, but your model may not have been able to recognize if there were 5 similar QBs to target in the early rounds).
Also although I understand the tradeoff of trying to predict more than 12 weeks, there is a considerable loss in limiting it to 12 weeks. For example, in his rookie season ARSB averaged 7 ppg weeks 1-12 and 25 ppg weeks 13-17. This late surge during the fantasy playoffs is not atypical for rookie wide receivers and I imagine that finding these high upside young receivers is a big piece of winning fantasy championships.
This is a really cool video! My only suggestion/ask for the next iteration is to move away from consensus based metrics. Think AlphaGo vs AlphaZero, or stuff like that. Humans are good, but we also think like humans. You could probably do an iterative approach using consensus based decisions to emulate fantasy drafts and then train it on historical data from 2024. (That wasn’t the clearest sentence I’ve ever wrote, but basically randomly generated league size, format, draft position of the new model, etc., then have it play through an actual draft with the other teams’ picks coming from metrics like ADP, positional needs, etc.. Then, simulate the whole draft as if it was for the 2024 season, give it a score based on how well its team would have done in that simulated league, and optimize from there. That’s what I had in mind when writing this, but I’m by no means an expert so do what you think is best if you do want to do this). Regardless, great video and awesome job!
This is crazy because in a lot of my league's the guys who took QB early have some of the best performing teams. I'm talking QBs in first two rounds in a 1QB format.
Legit for not rushing the TE pick . Great video
You have a 50k team dataset. Build your model as one that would have drafted early, in the middle, and then late, and see how it would have performed against the other teams. It doesn't matter that your simulated player has players that were picked by other players in that league it matters that it made better choices based on the players that were available.
I think you could do that trade value aggregate valuation that is online to compare the value of chosen players to work through the success of the model
Bro drop this every year, lets see how you do in leagues every year just based on the ai’s drafting
heck yeah, i will also make a follow up vid with how things went this season at the end of it all!
@@maxplayscfb should be interesting bro
A lot of fantasy is about perception, how somebody values that person in their mind.
And that's a hard thing to quantify.
And I guess its a big reason of why its fun, chaos is fun.
Yeah exactly I’m with ya
I find that drafting people with recent proven years of consistent production (i.e. Mike Evans, George Kittle, Justin Jefferson) over guys who have had one really good year or had incredible talent but hadn't proven they can maintain that since or in an entire season (Mark Andrews, Kyle Pitts, Bijan Robinson, Breece Hall), to be very effective. You can get lots of rookies with surprising upside (Puka, Tank Dell, etc.) on waivers and having consistent reliable production from your draft picks is incredibly helpful.
Yeah that might directly address that whole “veteran WR” thing this model was doing
I really believe incorporating player stats is incredibly important. The dataset you used bases player performance on draft position, which as you admit is the consensus opinion on a player. This isn’t necessarily problematic, but you have essentially built a model that has beliefs very close to the consensus but the model is logically consistent. I would predict in the long run this model does have an edge over humans with its logical consistency, but this also means there is a small standard deviation in season results. For most machine learning applications the smaller the standard deviation the better, but because in most fantasy leagues only the winner makes money, it is actually preferable to have a large standard deviation and lower average model performance if that results in more seasons of winning the league. For this reason the number of teams that make the playoffs is incredibly important to the model, as there is a massive difference in model outcomes at the playoff cusp. Getting back to why you need to incorporate player statistics is because you want the model to be making “risky” picks, the model needs more data to better identify diamonds in the rough. I know incorporating these suggestions into the model is far from easy to do, but i do not think you can beat the luckiest guy in your league by using the consensus opinion on players.
I’m also curious how you processed the data, which machine learning algorithm you used, and if you compared multiple algorithms. I assume because you mentioned it was a black box model it was either an unsupervised model or a neural network, but I’d like to know which one specifically.
Great fucking vid, as a data analytics master’s student this is incredible!
You should make this a series - show how the teams are doing throughout the season.
Honestly good idea, been considering making a second account just for the analytics stuff, and this could lie there
I've been fantasy footballing for like 25 years, so drafted quite a few teams. What you've done is very interesting, but I didn't see any mention of bye weeks. That is a stat that I personally value far more than how many WRs each player has drafted so far or anything like that.
Good call - technically the model knows nothing about bye weeks. I wonder how it would’ve changed my teams!!
this vid is super cool concept wise but would really benefit from some more visuals boss. great stuff!
I feel like fantasy leagues are won by drafting players that outperform their expectation the most, so finding value late in drafts. I wonder if you could find the most undervalued players from past years, quantify their wins over replacement or the success rate of teams with those players as compared to teams without to verify the hypothesis and then identify the common characteristics to help identify those players i.e. years of experience, position on depth chart, team scoring, QB quality by team, 40 time, catch rate, targets per route run, etc..
Had an issue where I took CMC, then went WR heavy and got Jallen. But now I’m screwed starting braelon Allen and charbonet, both giving me 6 pts a game. I would argue it’s more valuable to get starting level RBs early, because there’s not as many options as there are at WR. 12 man league
Cool video. I see one glaring problem with that model tho. Your decision function being on median/mean points per pick or even per team will yield a solid team but not necessarily the highest expected value of winning/chip
Super interesting but I don’t know how effective this type of thing will ever work. See CMC, Mahomes, Brian Thomas Jr this year.
I have always been a draft the Star Qb in rounds 2,3,4 and it NEVER fails…
Interesting
Sounds like you taught it pretty well.
If you don't mind spending a little bit of money, you could enter some best ball leagues on sleeper for a larger sample size. Is a slightly different format though
I agree, I think this whole thing would be a lot easier to do for best ball leagues
This doesn’t seem terribly far off of my basic draft strategy as a human player. In those early rounds, its absolutely better to go with a player that you know is going to perform barring injury. And outside of Breece Hall just simply not being used by a team with a QB with currently below league average play, Ive been happy with all of my picks in the first 7 rounds in all 3 of my leagues.
Though instead of rushing to get a QB early, I try to get a top tier TE, or maybe even 2. As with the TE position, there’s typically only about 4 consistent point scoring TEs in the league, and getting 1 or even 2 both ensures that you have an advantage at the position, and limits what other teams can do at that position. Plus in all of my drafts Captain Kirk and Baker where available in the 12th round and later. Who are two QBs that you can depend on to get a decent points haul every week, yet somehow seem to start the wrong one of the two every bloody week
Then in the later rounds, I try to pick up rookies and backup running backs. As they are typically good bank options with a massive upside, usually in the event of injury for when lets say the consensus number 1 pick gets put on LTIR
Ive also completely ignored picking up defenses until the last two rounds, and pick up the surprise defense (or 2) of the season on the waiver wire to get me through the season, or just pick the team that’s playing against the Panthers
I think doing this in the context of best ball leagues could be a way to get more "reliable" data points on the success of these AI-drafted teams. It takes a lot of the chaotic elements completely out of the equation. Start/sit decisions aren't needed, there is no waiver wire, and you can check the finishing placement of the teams based strictly off of fantasy points generated, not W-L record.
Best ball would need some kind of player point variance factored in because a receiver that alternates 24 points and 0 points is worth more than someone that scores 12 every week.
Can you add a video on how you managed to code all of this? Im really interested in this type of stuff.
I actually did take Puka with the last pick in one of my leagues and ended up winning that league, but he was a total flier that I took just for fun
Why is nobody talking about the fire "why so curious" shirt.
This year is my first year doing fantasy football, going in I did an experiment. 0 QB, the QB position does not matter. There will always be a QB who can score 20 a game open, so I took Baker mayfield in the 15th (don’t act like that’s impossible in all leagues he was like 7% drafted) who is QB2 in fantasy. Stop wasting top picks on QBs
yeah that was my exact strategy before this too, so i can support that mentality
Do it if you do super flex
Qb s matter in superflex
So was this trained on just last year? Because all the early RBs busted and the old wr’s killed it (Keenan and Mike Evans were like top 3 first 12 games last year I think). Also hurts and Allen were smash early picks last year so that makes sense. Feels like it just made its strat from what worked in drafts last year
Trained on drafts from 2018-2023 (however to me you’re right - that’s still not enough. If you look at the past half decade of fantasy data only, you’d prob come to the conclusion that the top ranked TE is worth it. In reality, is that true, or is that just talking about Travis kelce for 5 years???🤣🤣 except this year)
@@maxplayscfb yeah were years evenly sampled? Because I’d guess there were a lot more sleeper leagues last year than prior years. But idk I might just think that because I didn’t learn about sleeper until last year
@@maxplayscfb and I think it’s really cool it waited on te when everyone else had one. Maybe it also notices that there’s not much of a difference between a lower te and last round level te. Njoku laporta McBride were like last round picks last year LOL. Kinda repeating this year with Kraft ertz maybe
I have been using an algorithm I made for fantasy for about ten years now and I used the same 4 ideas to shape it. It’s not ai though I use inputs from fantasy point projections.
Oh sick, glad to know other people are grinding on similar things!
Unrelated but that shirt is awesome
where do you obtain your historical data for making these predictions?
Also, typically models give feature importances. Would be interesting to look at what features are most important.
Great video. The one point I'd disagree with is that nobody saw CMC going on IR. If you're familiar with Shanahan's history of running players into the ground and getting them injured, and his utter disregard for the limits of a human body, and then you saw CMC with a calf injury prior to the season after getting an ungodly number of carries the season prior - you had an inkling. This brings me to my next point which is my belief that the model would be greatly improved if it took into account the offensive coordinator and the history of players within that coordinators scheme. These guys are human and carry very deeply rooted beliefs in their systems. The OCs who believe in RB committees will run a committee, while others will prefer TE red zone targets or leveraging the slot. Adding data around the playbook, and possible plays can help predict breakouts for younger players, or players switching teams as well. ECR will often focus too much on talent over opportunity imo - but even a healthy CMC is going to bust if you put him in a system with zero running plays and zero passes to the rb.
You said a lot of nothing. Jim Harbough also ran CMC into the ground at Stanford. Some players are just injury prone, suck it up
@@gw3485. I'm sorry the education system has failed you.
@@griffinmpc8144 I'm sorry you have been coddled and lied to. Go look at how many rushes per season CMC had SINCE COLLEGE. Going on a tangent about the limits of the human body is nonsense
I agree. I had first pick this year and didn’t take CMC because I know his injury history and I know how the 9ers play. Admittedly I couldn’t tell you he’d go on IR but I didn’t think he was gonna be healthy for some time. I ended up going with Tyreek but he hasn’t gotten too many points with Tua getting hurt. That one was much harder to predict lol
@@gw3485. Not interested in your apologies or your thoughts. Thanks though!
I’ve been thinking about this for a few years.
If only you had a 12 team and a 10 team league of all AI that draft/manage for this to learn off of. That'd be interesting. Ultimately, it's hard to deny there is just a "feel" or "mojo" of how fantasy works. I've got leagues where I'm legitimately bad and the record reflects it. I've got ones where I am not scoring as well but stealing matchups until my WR's get stacked again.
Variance in schedule can lead you down a false path, might be better just to track points scored for the season in case you're just getting the worst fantasy opponents each week.
this is really cool! do you also have a video or github on your wide receiver model? i’m really intrigued by it too
good note -- the github repo for the WR project is github.com/iam-max-thompson/predicting_fantasy_points
fair warning, it was for a school project so the repo is UGLY but there's a pretty comprehensive write up in there
I have not added anything to github for this current iteration because it is a COMPLETE MESS. my goal over the next offsason is to clean it up, make it repeatable, and then make it public
Great video! I was curious - how were you able to access the data? Sleeper's API seems to only let you access league data using the league's ID, which isn't public. Right?
Most league IDs are public if you know the User ID
So basically I generated a list of 500 “realistic sounding” usernames like MikeSmith or BobJones
From there, I’d look up if the user was real and if they had associated leagues
Once I had those leagues (let’s say bob smith was in 3), I could go grab all the User IDs from all 3 of bob’s leagues
Now I have 25-35 unique user IDs and I could repeat the process
So like a virus spreading through leagues, I was able to keep finding more and more
I don't think the veteran wr bias is weird. Outside of the superstar outliers, it takes a while for a wr to get used to the pro game. I remember the saying that year 3 is the breakout year for wr.
QB doesn't surprise me. The position is more consistent week to week and generally scores a lot of points, so it acts as a consistent floor on scoring.
High valued QBs could be the injury risk. A lot of those guys are in every week putting up consistent points
Hey Max, really interested in this model and I have a few ideas, one of which I think could be super profitable. Would love to talk to you further about it.
I wonder if you can compare the picks it made to the results of the league. Maybe reward the model for picks that finished above adp. And that stay on the same roster. I don’t know anything about making these models but I’d be interested to know if you could add something like that to it.
Will your AI model be able to add/drop players on the waiver wire? Will it seek trades? Drop a player to IR or the w.w. if injured?
Speaking of The Wire, you make a very good point about the limits of measuring AI's predictive worth and efficacy as the season goes on, and the data with which the model worked gets old. Can you feed current stats into the model as the season goes on?
I would love a break down of why my team I drafted was number 1 on power rankings before the start of the season on sites like Fantasy Pros and Flock Fantasy to now being 7 or higher. How did the rankings/predictions go that far off? I'm 2-4 and barely won those 2 games. I just dont know how it all went wrong after feeling like I won the draft.
This is very interesting, this might sound crazy, but have you ever thought of teaching a model to pick lottery numbers?
I know its a little random but where did you get that shirt it is absolutely amazing
lucca international, but also you can get it from a ton of diff places online nowadays by searching 'why so curious george shirt'
The Puka thing was a bit predictable. In the same exact way Alvin Kamara was. They both were rookies in aging rooms. Kamara was drafted behind Ingram and old man Peterson. Same with Puka. Drafted onto a team with a weak WR room behind an old and I jury prone wr. Obviously they both panned out well, but it's about finding the situation, not the player. It's a much better plan than identifying the outlier talent and HOPING they get the opportunity. Find the opportunity and draft THAT. Don't look for Puka, look for the situation that allowed him.
The model didn't like Rashee and Nico because it knew they were going to get hurt. :(
At 3:05 did you give the positional value a score or how did you determine what the value was to train the model? Same for the 3 important attributes at 1:45?
Sick. Start a members league next year so i can whoop AI's arse 😅😅😅
Hey I'm an aspiring data science student trying to go to school for it next year. Some players are more risky than others obviously, so maybe there is some model that can guarantee a high floor while another is more risky but is more likely to win you the whole thing? This type of stuff is interesting to me
Yeah the whole high floor vs high ceiling vs best overall is something I thought about a lot too. Def worth considering which one of those 3 should be prioritized and where
Well you included the length of career in your model, so of course you’re going to get old guys, i don’t know if that’s really a valid training parameter, especially with great younger guys who certainly surpass some of the older ones.
So the feature is included, but I didn’t “set” any sort of importance or anything. The math behind the model determined the value, not me
Can’t you check how the model would do by simulating previous fantasy drafts and comparing its performance to the same player performance at that draft spot? Or if that data isn’t available then at least getting a rough estimate of how a mock draft would go using ADPs and doing 1000s of those drafts, then compare the avg performance to avg player performance?
Working on something similar for a class project, where did you get that sleeper data?
Justin tucker is easily a 1st rounder.. and I LOVE this sort of stuff
Thanks for watching!
This made me chuckle 🤣 been telling my cowboy fan buddy Dallas Kicker has been their most consistent fantasy player all year.
Where did you get access to those other leagues? I've been poking around for it since I've been trying to use it for my own ML project
I scraped them off of sleeper’s api
Their documentation is pretty good if you want to recreate!
ooooo thank you algorithm, this is exactly my kinda content
im really hoping there are people that sit at the intersection of sports + analytics + youtube, and good to know i found someone!! ill keep trying to make more vids like this when i find time
Would you be able to share how you gathered the data for the initial source of 500,000 leagues? After looking into Sleeper's API, I can only see a way to get data from leagues where you know a username.
Ahahahahaha exactly.
So here is what I did:
1. Use GPT to give me a list of 100 realistic sounding basic names “johnsmith” or “mikejones”
Then add numbers to each so I have johnsmith1, 2, 3 etc
Then use their api to see if the user exists
If they do, then I go ahead and grab the leagues for that guy.
Once I do that, I can go into all of johnsmith1’s leagues and grab all of his league mates too
Now like a parasite I can crawl through all of those guys’ leagues and repeat the process🤣
This was just recommended to me, and I can tell you - and would link you to my blog if I could - that I had CMC missing half the season long before the season started. Did you watch football last year and him massaging his calves on the sidelines and trying to fight off injury in the playoffs? This is one example of many why I don't like FF: a bunch of super casual stat nerds who don't actually watch or follow football like to parade around as if they were experts. It makes for bad/trash fans with terrible L takes.
Sure, you may have been one of the few that saw him coming, but the fact is that the vast majority of football watchers, expert or not, did not expect it.
How do we know? Well, of all the casual fantasy football players like me, he had the highest ADP of any running back.
Even of all the fantasy EXPERTS who 100% follow football as closely (if not closer) than you had him as their top choice with no comments of missing time.
So sure, 0.001% of people can shout from the rooftops that “I saw it coming I swear!” - that’s fine, keep doing it. But it does not change the fact that the other 99.999 percent of people didn’t expect it.
Would love to check out your blog tho! Feel free to drop a link
1. I love the video
2. I love the breakdowns and takes.
3. I don't trust these "experts" on TV and in print. They aren't experts. They are the experts in the same way astrology is real. Remember, they get paid for engagement, not their accuracy. Their L takes just drive more traffic.
4. Each time I try to post my blog, my posts disappear.
5. I used to write guides to Madden Fantasy drafting, and while it is "different " than FF, also not really. Many of the things you said are things I have written about since the PS2. Valuing positions, taking risks, and when not to fall for a run on a position like the rest of the league, etc etc etc.
Bro looks like young Doctor Octavian
I’m a little bit disappointed by the decision to use ADP as the measure of player value. I think the biggest edge to be found with data science in fantasy is making better predictions about player performance.
Yeah I think there’s 2 key steps to fantasy dominance:
1. Be a better player performance evaluator than others
2. Use your performance predictions across all the positions to draft the right mix of guys
This whole project was about part 2. I do agree with you tho, part 1 is pretty dang important too, but I view it as a separate project worthy of its own time
Honestly I'd be curious how much a good draft affects final league ranking. Obviously every win is good, but maybe as a whole a good draft is overrated to some extent
yeah thats a really good point -- itd be interesting to be like:
Your draft grade is an A+
Mine is a C-
Are you 10% more likely to make the playoffs? 50% more likely? etc
Hey Max, how did you get the league data you referenced from Sleeper?
Scraped it myself😎😎😎
Feels like everything about this model got it wrong year.
Zeke round 5 tells me your valuing experience way too much lol
I want to quickly stress that neural network ai do not reason or have any form of logic, they simply create outputs based on patterns.
I agree, just trying to speak in as plain English as possible so as many ppl as possible understand
Can you make the model available for us to play with/tweek?
I think the AI doesn’t value certain positions. The ADP values certain positions so the AI reacts to that. My mindset, which has generally been successful for me, is that round 1 should have a fairly even distribution of positions drafted. The top WR should have a similar value to the top RB. ADP has traditionally overvalued RB so QB and WR will traditionally have a better value. It has gotten better over the years but 5-10 years ago the ADP would have like 90% RB in round 1. In a situation like that, I load up on all the other positions and the value gained is far better than the loss of having the worst at a popular position group.
The difference between RBs and WRs is that there's just fewer of them overall, especially those that get a large majority of their team's carries. Having them on your roster when your opponent doesn't is a competitive advantage.
Did you try finding the success of the model by using validation data from previous seasons?
Yup, that’s exactly how I did it!
Which advanced stats did you feed into the model? Or was it just basic stats?
4:16 that aged well 😂
LMAO yeah this whole video is a fun exercise in things aging poorly🤣🤣
Is this using llms? Josh allen has more content written about him in training set. Same with veteran vs young wrs. It is just predicting words that should come next. No smarts i dont think.
You made auto draft that works shiet… espn needs to hire you for the app
can you make this available to public?
Is taysom still your starting te?
This shit itches my brain
Heck yeah glad to scratch that itch
@@maxplayscfb I’m starting community college soon, what associates program would you recommend to transfer into an undergrad data science program
7:24 cmc??😂
Anti-clickbait is the new clickbait
Not sure what you mean here
Not to nit pick, why is every cut a J cut?
Honestly I just really like that cut - thoughts? Overkill?