Title: Can Python make you rich? My attempts at becoming profitable in Daily Fantasy Sports
Duration: 10 min
Language: English
Level: Beginner
Categories:data science, sports, machine learning, optimization, data infrastructure, web scraping
Abstract
Over the past decade, Daily Fantasy Sports (DFS) has exploded into a multi-billion dollar industry. With the promises of riches, thousands of people flooded onto sites like Fanduel and Draftkings. This talk will highlight my journey as one of these people, armed with a single tool: Python.
Description
In this talk I will show how I built out an end-to-end DFS optimization system using just Python. I will start by briefly talking about the DFS industry, and how the competitions work. With this background knowledge, I will walk through the different phases of of my journey in becoming competitive in DFS: getting data, building predictions, generating lineups, stacking, backtesting different strategies, and deploying these live strategies.
The talk outline will be something like this:
Intro to DFS (1 minutes)
talk about the major players in DFS, basic idea of how DFS works
talk about what goes into setting a fantasy lineup: predictions, salaries, & actual starting lineups
briefly discuss the different types of contests (tournaments vs. head to head vs. 50-50s etc.), and the slates (early games, all games, late night games etc.)
Getting Historical Performance Data (1 minutes)
highlight where to find data for each sport I looked at: NHL, NBA and MLB
talk about the other data sources you need to build out your strategy
starting lineups, vegas odds, weather data, fantasy point projections
discuss some of the challenges of working with this data
web scraping is messy
players names are spelt differently on different sites
some sites can't be scraped with requests and need more advanced methods, like selenium
Building Predictions (2 minutes)
talk about the player modeling I did
the types of features I built
combining my model scores with other fantasy projection sources (rotogrinder, dailyfantasynerd)
the different model algorithms I tried, and how they compared
Generating Lineups (2 minutes)
talk about lineup optimization
what are we trying to optimize?
total projected fantasy points (mean projection vs. highest possible score)
what are the different lineup constraints? (number of players required at each position)
how can you perform optimization in Python
discuss some of the unique strategies I took using "stacking"
stacking is the concept of adding or removing certain players based on factors like: are they in the same lineup (in real life), are they on a powerplay together, will they steal shot attempts from each other, is this player playing against a certain goalie from another team etc.
Backtesting Different Strategies (2 minutes)
provide an overview of my backtesting process
show how performance varied across different competition types & slates
talk about the initial strategy that was taken for my pilot
Going Live (2 minutes)
talk about the additional infrastructure required for going in live competitions
ongoing ETL processes
productionizing models
automating lineup entries in fanduel
talk about the immediate learnings from my initial competitions
Wrapping Up (1 minute)
lessons learned
leakage of "future data" into our models and lineup optimizers
valuing the importance of better models
targeting specific competition types and slates
things I would have done differently
thoughts on DFS, how to be competitive, and most importantly: whether it's worth it
Questions (1 minute)
End with time for the audience to ask questions.
The main repo used for this project is private, but you can look at some individual player modeling I did for the NBA here: https://github.com/ian-whitestone/nba-dfs.
About Me
As a student of Chemical Engineering at Queen's University, Ian was pursuing a career back home in Calgary in the Oil & Gas industry. During one summer, he was thrown into the world of data science when he started trying to make money by using Python to optimize daily fantasy sports lineups. After the oil price started crashing, he realized he should probably look for work in another industry.
With a new found passion for data science, Ian started working for Capital One in Toronto as a data scientist. For the past two years, he has been working on operational monitoring across the business, credit risk analysis, data infrastructure & risk models. In his spare time, Ian likes to participate in hackathons, work on side projects (usually involving a raspberry pi), or eat burrito boyz.
PyCon Canada 2018 Talk Proposal
Title: Can Python make you rich? My attempts at becoming profitable in Daily Fantasy Sports Duration: 10 min Language: English Level: Beginner Categories:
data science
,sports
,machine learning
,optimization
,data infrastructure
,web scraping
Abstract
Over the past decade, Daily Fantasy Sports (DFS) has exploded into a multi-billion dollar industry. With the promises of riches, thousands of people flooded onto sites like Fanduel and Draftkings. This talk will highlight my journey as one of these people, armed with a single tool: Python.
Description
In this talk I will show how I built out an end-to-end DFS optimization system using just Python. I will start by briefly talking about the DFS industry, and how the competitions work. With this background knowledge, I will walk through the different phases of of my journey in becoming competitive in DFS: getting data, building predictions, generating lineups, stacking, backtesting different strategies, and deploying these live strategies.
The talk outline will be something like this:
Intro to DFS (1 minutes)
Getting Historical Performance Data (1 minutes)
Building Predictions (2 minutes)
Generating Lineups (2 minutes)
Backtesting Different Strategies (2 minutes)
Going Live (2 minutes)
Wrapping Up (1 minute)
Questions (1 minute) End with time for the audience to ask questions.
The main repo used for this project is private, but you can look at some individual player modeling I did for the NBA here: https://github.com/ian-whitestone/nba-dfs.
About Me
As a student of Chemical Engineering at Queen's University, Ian was pursuing a career back home in Calgary in the Oil & Gas industry. During one summer, he was thrown into the world of data science when he started trying to make money by using Python to optimize daily fantasy sports lineups. After the oil price started crashing, he realized he should probably look for work in another industry.
With a new found passion for data science, Ian started working for Capital One in Toronto as a data scientist. For the past two years, he has been working on operational monitoring across the business, credit risk analysis, data infrastructure & risk models. In his spare time, Ian likes to participate in hackathons, work on side projects (usually involving a raspberry pi), or eat burrito boyz.