Giter Site home page Giter Site logo

slides's Introduction

slides

A repo to host slides for any talks I give.

Head to the gh-pages branch for the content.

StolenBorrowed from Matt Rocklin.

slides's People

Contributors

ian-whitestone avatar

Watchers

James Cloos avatar

slides's Issues

Can Python make you rich? My attempts at becoming profitable in Daily Fantasy Sports

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)

  • 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.

Gimme Shelter: Using Python to Find an Apartment in Toronto (PyCon Berlin)

PyCon/PyData Berlin 2019 Talk Proposal

Title: Gimme Shelter: Using Python to Find an Apartment in Toronto
Duration: 30 min
Language: English
Level: Beginner
Categories: Python, Data Mining / Scraping, Word2Vec, Unsupervised ML, Image Classification

Abstract

Finding the ideal apartment in Toronto, let alone one you can afford, is a daunting & time consuming task. This talk will highlight how I used Python, Slack, and some un-supervised clustering to find a place to live.

Abstract as a Tweet

Searching for apartments is a daunting & time consuming task. But rest assured, Python plus a bit of webscraping can go a long way. This talk will highlight how I used Python, Slack, and some un-supervised clustering to find a place to live.

Description

In this talk, I will dive into how I used Python to continually scan apartment listings on Craigslist and Kijiji, filter them based on my preferences, and send them to slack where my girlfriend and I could discuss and upvote different options. I will talk about some unique features I built using the Google Maps API, like distance to the nearest subway station & commute time to work. We will then discuss how I utilized Word2Vec and a pre-trained image classifier for un-supervised clustering and price comparisons. I will finish off with what I learned and what I would have done differently.

A rough outline of my presentation would be as follows:

  • The terrible experience of apartment searching
  • Getting the data
    • Including an overview of different web scraping methods in Python
  • Enriching the data with other features
    • Distance to nearest subway station
    • Commute time to work
  • Price ranking with un-supervised clustering
    • Including an overview of Word2Vec and how to use pre-trained image classifiers to extract information from images
  • Using Slack as a notifications system and a free GUI
    • Including an overview of different options for interacting with slack: webhooks, bot users, and apps
  • Lessons learned
  • Q&A

See the github repo for more details: https://github.com/ian-whitestone/toronto-apartment-finder. A note to the speaker selection comittee, the un-supervised clustering component is currently under development and will be added to the repo prior to the conference.

About Me

As a student of Chemical Engineering at Queen's University, Ian was pursuing a career back home in Calgary, Alberta 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 crashed, he realized he should probably look for work in another industry.

With a new found passion for data science, Ian started his career working for Capital One in Toronto as a data scientist. For close to three years, Ian worked on operational monitoring across the business, credit risk analysis, data infrastructure & risk models. Looking to experience work in another indsutry, Ian started working as a product data scientist for Shopify where he currently spends his days doing analysis and building data products to help make commerce better for everyone. In his spare time, Ian likes to participate in hackathons, work on side projects and play spikeball.

Talk Ideas

  • Building data pipelines with Dask and Glom
  • Building a home security system with Pi & Slack!
  • Toronto Housing trends and analysis
  • Trying to make money in daily fantasy sports
  • Toronto apartment hunting with Python
  • Why division is the best data science algorithm

Toronto Python Meetups:

  • Serverless python with zappa [september 24, 2019]
    • nice features: packaging up python dependencies, adding a rule to keep package warm, cleaning up deployment files, setting up API gateway, getting pre-compiled lambda packages
    • show before (bash scripts)/after (with zappa)
    • demo
    • annoyances/challenges: https://github.com/ian-whitestone/domi/issues/58
  • individual pieces of toronto apartment finder
    • web scraping 101
    • using glom to process results
    • using sqlalchemy to store results
    • posting results in slack

Serverless Python with Zappa

Purpose Give a quick overview of zappa
Venue Sep 2019 python meetup, hosted at Shopify

  • nice features: packaging up python dependencies, adding a rule to keep package warm, cleaning up deployment files, setting up API gateway, getting pre-compiled lambda packages
  • show before (bash scripts)/after (with zappa)
  • demo
  • annoyances/challenges: ian-whitestone/domi#58

Who's There? Building a home security system with Pi & Slack!

PyCon Canada 2018 Talk Proposal

Title: Building a home security system with Pi & Slack!

Duration: 10 min

Language: English

Level: Beginner

Categories: data science, opencv, raspberry pi, slack apps, motion detection

Abstract

How does one make use of that raspberry pi they bought years ago? This talk will summarize how you can turn your raspberry pi into a home security system, utilizing slack as a notifications and control system.

Description

In this talk I will show how I turned my raspberry pi into a home security system. I will start with going over the different options for home security with a raspberry pi, then go into detail about the method I chose, which uses a video feed, OpenCV, and background subtraction to detect motion. I will then show how you can layer on out of the box image classification algorithms to reduce the number of false positives, and show how slack can be used as a notifications system and GUI to control your system. While the talk will focus on home security systems with the raspberry pi, the technologies and methods used will highlight the potential for many other use cases. I will finish off with some lessons learned and other applications of these technologies.

The talk outline will be something like this:

Home Security Options with the Raspberry Pi (1 minutes)

  • highlight different options for "home security" with a Raspberry Pi
    • using a motion sensor, ultrasonic sensor, and camera
    • The pros and cons of each solution will be discussed

Intro to OpenCV and Background Subtraction (2 minutes)

  • highlight how to use the Python OpenCV library to process images
  • talk about background substraction, and show how it can be performed with OpenCV

Using a Custom Slack App for Notifications and System Control (3 minutes)

  • quick overview of different options for interacting with slack: webhooks, bot users, and apps
  • discuss how the slack app was built with flask
  • show GIF demo of the app I built

Reducing False Positives with an Image Classifier (2 minutes)

  • show how false positives from the background subtraction method can be reduced by layering on a pre-built image classifier
    • emphasize the importance of combining the methods to reduce the workload on your raspberry Pi

Wrapping Up (1 minute)

  • lessons learned
  • other applications

Questions (1 minute)

  • End with time for the audience to ask questions.

See the repo for some more info on the project: https://github.com/ian-whitestone/rpi-security-system

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.

Gimme Shelter: Using Python to Find an Apartment in Toronto (PyCon Canada)

PyCon Canada 2018 Talk Proposal

Title: Gimme Shelter: Using Python to Find an Apartment in Toronto
Duration: 10 min
Language: English
Level: Beginner
Categories: web scraping, slack, google maps api

Abstract

With a continued shortage of rental units, finding the ideal apartment in Toronto, let alone one you can afford, is a daunting & time consuming task. But rest assured, Python plus a bit of webscraping can go a long way. This talk will highlight how I used Python and Slack to find a place to live.

Description

In this talk, I will dive into how I used Python to continually scan apartment listings on Craigslist and Kijiji, filter them based on my preferences, and send them to slack where my girlfriend and I could discuss and upvote different options. I will talk about some of the neat features I added on top of basic "price" and "number of bedroom" filters, like how far away apartments are from various different subway stations, and how long my commute time would be to work. I will finish off with what I learned and what I would have done differently.

A rough outline of my presentation would be as follows:

Why searching for apartments sucks (1 minute)

  • highlight the main problems I was trying to solve
    • all the different sites that people post on
    • amount of time it takes to find things
    • how quickly apartments get snatched up

Getting Data (3 minutes)

  • talk about how to get data from Kijiji & craigslist
  • talk about some of the challenges of web scraping
    • not everyone website can be scraped using requests, talk about how you need tools like selenium for scraping sites with dynamically generated javascript content, and how you can switch to headless browsers when going to "production"

Enriching the Data with Other Features (2 minutes)

  • discuss the new features i built
    • time to subway station
    • commute time to work
    • neighborhood rankings
    • price rankings
  • discuss some of the challenges and limitations of these methods

Using Slack as a Notifications System, and a free GUI (2 minutes)

  • quick overview of different options for interacting with slack: webhooks, bot users, and apps
  • discuss how the slack app was built with flask

Wrapping Up (1 minute)

  • lessons learned
  • things I would have done differently

Questions (1 minute)
End with time for the audience to ask questions.

See the github repo for more details: https://github.com/ian-whitestone/toronto-apartment-finder

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.