Hello readers of the Razz! It’s been a long winter and I have some strange ideas floating around my mind, so I’d like to start things off with a little guessing game.
If I have your permission, I’d like to presuppose that at one point in your fantasy baseball career, probably near the start, you had a dream that you were better than everyone else at predicting player performance. Maybe not for every single player but you at least had a few players, your guys, who you thought would have a big year. It was based on only hunches, but you were a confident, naive little soul.
Fast forward after a year or two of mediocre success and of reading The Book Blog, and next thing you know, all that personal confidence is gone and you shill around $40 every March to have some RotoManiacDude do the predicting for you.
Kind of a humiliating defeat if you ask me.
No, I’m not calling out everyone to get off their mental ass and begin working on a projection system. Here’s the code for the simplest one and it’s complicated enough already.
What I do want people to realize, is that a part of fantasy baseball that use to involve gutsy calls and artful player evaluation has slowly been drained of that element by “stat heads” and their projection systems. The romantic among us yearn for those lost days of one man’s imperfect wit against another’s. The more logical read the phrase “artful player evaluation” and replace the first word with “biased” or “inaccurate”.
Sad as it was in the case of player prediction, there is still room for personal decision making in other aspects of the game. In certain leagues there are daily roster decisions of who to sit and who to start, and who to pickup, who to drop.
But then came Hitter-Tron and Stream-o-Nator, and a whole host of other features on other sites that accomplished the same goal: automate a portion of a person’s fantasy baseball algorithm.
The effect is to take some of the decision making away from the ill-informed, biased fantasy player and replace it with a program designed to make the same decision but with less error. Although I’m using a slightly ominous tone, it doesn’t sound so bad, does it?
The question is, where does it stop? Player evaluation is long gone. Drafting players via snake or auction is becoming automized by “Draft Software” and “War Rooms”. I already brought up how setting your roster is increasingly automated. People complain that we take away the human element of players when we reduce them to stats on our fictional squads, but we’re simultaneously taking away the human element of ourselves from the game of fantasy baseball by relying on computer predictions for all our decisions.
So what do I, your cherished author, have to say about all of this? I say screw it, let’s quit pussyfooting around things. Let’s automate everything. Let’s take the entire process–from the day of the draft to the final day of the season–and make one giant algorithm that behaves like we do. Perhaps we’ll even make something that performs better than we do. The sort of self-analyzation that occurs when one automates a process often leads to improvements in the process, if only for consistency’s sake. (The algorithm won’t smoke weed and forget to set its lineup, for example.)
I have a slight head start on you in thinking about some of the difficulties that will arise in this endeavor. Unlike other games such as chess and poker (for which there has been no lack of effort by people into designing programs to play them optimally, or in the case of poker, at least profitably) fantasy baseball has no distinct rulebook. This poses a serious problem if we want our algorithm be able to handle every possible fantasy baseball position it is placed in. It should have a move for every potential context. While that’s the ideal, we’ll have to start off with a slightly narrower scope.
Computers are best at performing highly repetitive tasks, so it makes sense to start off by thinking of an algorithm for daily-move leagues (not daily Fanduel-type leagues, algorithms already exist for those). In the same way that Alan Turing looked at mathematical computation phenomenologically to hypothesize the Turing Machine and eventually build one of the first universal computing machines, I want to note step-by-step exactly what I’m doing when I “play” fantasy baseball. Everything from the buttons I click, to the thoughts going through my head, to the text I read is recorded and considered for possible inclusion in the algorithm.
Avoiding getting bogged down in details (which I’m more than happy to get into discussions about in the comments!), there are areas I see this going smoothly and areas I see a program struggling. To give one example: trade negotiations. It shouldn’t be very hard to automate the process of evaluating a trade, but the actual negotiations leading up to the offer? Very difficult to strip the human element from that.
There are literally a million other considerations in my head right now, but I won’t let that paralyze me from getting the base of the process down first, and worry about fine-tuning in a step-by-step process later. Thinking grandly, my hope is enough people will think this algorithm an interesting enough idea, and it will compete in a Tout Wars league someday (I’ll offer up my spot).
I have a fair amount of coding knowledge to gain to get to the point of building an actual program, but this is my project for the 2015 season. I’m excited to get started taking the fun out of fantasy baseball, what’s left of it anyway.