{"@attributes":{"version":"2.0"},"channel":{"title":"John Edwards","link":"https:\/\/johnbedwards.io\/","description":"Recent content on John Edwards","generator":"Hugo -- gohugo.io","language":"en-us","copyright":"\u00a9 2021","lastBuildDate":"Thu, 19 Mar 2026 00:00:00 +0000","item":[{"title":"March Madness 2026 First Round Projections","link":"https:\/\/johnbedwards.io\/blog\/march_madness_2026_round_one\/","pubDate":"Thu, 19 Mar 2026 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/march_madness_2026_round_one\/","description":"Introduction and methodology Last year I released my initial batch of March Madness projections for 2025! I tend to be decently good at the Kaggle competition for March Madness at least, and other people found them useful as well. While I am releasing these a bit late for anyone to really bake them into a bracket (blame a hectic spring training), I did want to share my predictions for the upcoming tournaments."},{"title":"March Madness 2025 First Round Projections","link":"https:\/\/johnbedwards.io\/blog\/march_madness_2025_round_one\/","pubDate":"Mon, 17 Mar 2025 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/march_madness_2025_round_one\/","description":"Introduction and methodology Following up on my Kaggle March Mania top 40 finish from last year (in addition to my top 30 finish from 2021), I&rsquo;m excited to share my Mach Madness projections for this year! I want to get a bit more granular this year and be able to share some individual game projections as well, as an exercise in preparing these kinds of visuals (not to mention the social media clout)."},{"title":"What I learned from running 26 miles","link":"https:\/\/johnbedwards.io\/blog\/marathon_training\/","pubDate":"Sun, 12 Jan 2025 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/marathon_training\/","description":"Introduction I sent out an open request a few weeks ago for potential blog post topics. I expected a lot of requests for technical or sports stuff, but I also got some requests about stuff I did in my personal life&mdash;specifically, An Nguyen requested to hear about my experience training for a marathon!\nmarathon training\n\u2014 An Nguyen (@nguyenank.bsky.social) November 19, 2024 at 10:59 AM\n  After writing a bunch of heavily technical posts about the Advent of Code in December, I thought it would be a good idea to tackle something less technical to balance out my blog&rsquo;s tone."},{"title":"2024 Advent of Code Week 4","link":"https:\/\/johnbedwards.io\/blog\/aoc_2024_week_four\/","pubDate":"Tue, 31 Dec 2024 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/aoc_2024_week_four\/","description":"Introduction The Advent of Code (AOC) is a series of programming problems that are released daily from December 1st to December 25th, each problem more challenging than the last. As a means of practicing my Julia skills, I decided to try to tackle the AOC this year using just Julia! You can view my solutions to each week at these links: week one, week two, and week three. Let&rsquo;s finish strong with week four!"},{"title":"2024 Advent of Code Week 3","link":"https:\/\/johnbedwards.io\/blog\/aoc_2024_week_three\/","pubDate":"Mon, 30 Dec 2024 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/aoc_2024_week_three\/","description":"Introduction The Advent of Code (AOC) is a series of programming problems that are released daily from December 1st to December 25th, each problem more challenging than the last. As a means of practicing my Julia skills, I decided to try to tackle the AOC this year using just Julia! If you&rsquo;d like to see my work in completing the first week of AOC problems, click here, and if you&rsquo;d like to see my second week, click here."},{"title":"2024 Advent of Code Week 2","link":"https:\/\/johnbedwards.io\/blog\/aoc_2024_week_two\/","pubDate":"Sat, 14 Dec 2024 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/aoc_2024_week_two\/","description":"Introduction The Advent of Code (AOC) is a series of programming problems that are released daily from December 1st to December 25th, each problem more challenging than the last. As a means of practicing my Julia skills, I decided to try to tackle the AOC this year using just Julia! If you&rsquo;d like to see my work in completing the first week of AOC problems, click here. Let&rsquo;s dive in!"},{"title":"2024 Advent of Code Week 1","link":"https:\/\/johnbedwards.io\/blog\/aoc_2024_week_one\/","pubDate":"Sat, 07 Dec 2024 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/aoc_2024_week_one\/","description":"Introduction The Advent of Code (AOC) is a series of programming problems that are released daily from December 1st to December 25th, each problem more challenging than the last. As a means of practicing my Julia skills, I decided to try to tackle the AOC this year using just Julia! This is my write-up of the first week of AOC problems that I completed&ndash;as these problems progressively get more difficult, I anticipate splitting these posts into chunks that cover fewer days but are more comprehensive."},{"title":"Predicting the Olympics","link":"https:\/\/johnbedwards.io\/blog\/olympic_prediction_contest\/","pubDate":"Mon, 18 Nov 2024 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/olympic_prediction_contest\/","description":"Stade de France; Chabe01, CC BY-SA 4.0, via Wikimedia Commons\nI had the pleasure of competing in the Royal Statistical Society&rsquo;s 2024 Olympics prediction contest. I also had the pleasure of winning! While I feel that my code is too messy to share at present and I lack the motivation to clean it up for public consumption, I did want to discuss at a high level my approach and lessons learned from this competition."},{"title":"Google's Data Science Agent is just a Kaggle slop generator","link":"https:\/\/johnbedwards.io\/blog\/google_data_sci_slop\/","pubDate":"Sat, 18 May 2024 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/google_data_sci_slop\/","description":"Google I\/O 2019; Alexander Shcherbakov, CC BY-SA 3.0 via Wikimedia Commons\nGoogle I\/O was this past week, and predictably, the focus was LLM-powered tools. Among the products Google rolled out was something that caught my eye&ndash;an LLM powered &ldquo;Data Science Agent&rdquo; that would take in data and with prompting, break down a dataset, develop a plan of attack for approaching a data science problem, and even generate Colab notebooks.\nToday we are launching Data Science Agent, a Google Labs experiment."},{"title":"Animating Plays in Julia with Makie.jl","link":"https:\/\/johnbedwards.io\/blog\/big-data-bowl-makie\/","pubDate":"Mon, 23 Oct 2023 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/big-data-bowl-makie\/","description":"Introduction No matter what kind of project you want to tackle, you&rsquo;re going to want the ability to understand what&rsquo;s happening on a given play with the Big Data Bowl dataset. Easier said than done! You can go to YouTube and try to scrub through hours of film to see plays, but 1) that takes a ton of time and 2) means interfacing with the game in a meaningful way beyond manipulating a spreadsheet, which no self-respecting analytics nerd would ever do,,,"},{"title":"Hacking by stacking\u2014how to get better {tidymodels} performance with {stacks}","link":"https:\/\/johnbedwards.io\/blog\/stacks\/","pubDate":"Wed, 21 Dec 2022 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/stacks\/","description":"Introduction There is no more frustrating feeling than finishing just shy of a podium position in a Kaggle competition. Those precious competition points were right there! If only you had just a slightly better log loss! Alas, you exhausted every tool in your data science toolkit, and that was the best you could do. Unless&hellip; there was another way to get even better performance out of your models. Something so absurdly simple to implement that it felt almost like hacking the leaderboard."},{"title":"Using Flux.jl to model Scrabble turns","link":"https:\/\/johnbedwards.io\/blog\/predicting-scrabble-point-values\/","pubDate":"Tue, 01 Mar 2022 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/predicting-scrabble-point-values\/","description":"I recently participated in a Kaggle community competition where the objective was to predict the point value of a word played on the 20th turn of a Scrabble game given a dataset of Scrabble games played on Woogles.io, an online Scrabble website. After learning a lot about neural networks and Julia, I managed to swing first place! Below is my write-up of my solution, which also represents my first serious foray into working with Julia."},{"title":"Lessons from picking the 2022 CFB Season","link":"https:\/\/johnbedwards.io\/blog\/picking_2022\/","pubDate":"Mon, 10 Jan 2022 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/picking_2022\/","description":"As we reach the end of the 2021-22 college football season (the national championship game is unfolding on my TV as I type this), I wanted to take a look back at my performance in the College Football Data predictions contest. Minimum 400 games picked (not counting the NCG, but it should not affect my performance) (I picked 726 games total, for reference), I finished:\n 1st in straight-up picks 3rd in ATS picks 1st in absolute error 4th in mean squared error  So I did pretty well, especially for someone who picked as many games as I did!"},{"title":"2021 March Madness Kaggle Solution","link":"https:\/\/johnbedwards.io\/blog\/march_madness_2021\/","pubDate":"Wed, 02 Jun 2021 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/march_madness_2021\/","description":"Our approach is ensemble the shit out of everything. We will hold out the 2015-2019 games for validation purposes. We will prepare and optimize two sets of models - one, an ensemble of general team strength features trained on 1985-2014 games, and two - an ensemble of general team strength features + adjusted ratings based on box-score data trained on 2002-2014 games. Let&rsquo;s prepare the first approach.\nimport sys !{sys.executable} -m pip install pandas sklearn numpy rpy2 trueskill catboost hyperopt ray import numpy as np import pandas as pd from sklearn."},{"title":"Applying LRMC Rankings to College Football, Part Two","link":"https:\/\/johnbedwards.io\/blog\/lrmc_pt_2\/","pubDate":"Wed, 02 Jun 2021 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/lrmc_pt_2\/","description":"The following was originally published on the CFBD Blog and has been reproduced here with edits for clarity.\nThis is the second and final part of a series on implementing LRMC rankings for CFB! This entry presupposes you are familiar with the mathematical concepts behind LRMC. To view part one, which covers these concepts, click here.\nWhen we last left off, we covered how LRMC works and how to implement it mathematically."},{"title":"Applying LRMC Rankings to College Football, Part One","link":"https:\/\/johnbedwards.io\/blog\/lrmc_pt_1\/","pubDate":"Tue, 01 Jun 2021 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/blog\/lrmc_pt_1\/","description":"The following was originally published on the CFBD Blog and has been reproduced here with edits for clarity.\nAs Bill covered earlier this season, calculating strength-of-schedule adjusted metrics like SRS are a little tricky given how few non-conference games teams play this year. While I think his technique for conference-based SRS is a great attempt at a really difficult problem, I think there is some value in discussing alternative approaches to evaluating team strength this year that do not struggle with the same singularity issues as SRS."},{"title":"About Me","link":"https:\/\/johnbedwards.io\/about\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/about\/","description":"I am a sports analyst\/data scientist from Virginia Beach, VA, currently residing in Seattle, WA. I received my BS in Literature, Media, and Communications from Georgia Tech in 2019. I have previously worked as a contributing writer\/analyst for a variety of websites, including The Athletic, and Sporting News, but have since moved to work in front offices, interning with the Baltimore Orioles before landing with the Seattle Mariners. I currently serve as the assistant director of data science for the Mariners."},{"title":"Projects","link":"https:\/\/johnbedwards.io\/projects\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/projects\/","description":"cbbd-r Authored an R package to allow users to interact with the CollegeBasketballData.com API, using continous integration to build and update documentation as the API itself is updated.\nNFLData.jl Developed and released an open source Julia package allowing users to easily work with nflverse data. You can view the documentation for the package here.\nRoyal Statistical Society 2024 Olympic Prediction Contest Finished 1st overall in the RSS&rsquo;s 2024 Olympic Prediction contest."},{"title":"Resume","link":"https:\/\/johnbedwards.io\/resume\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/johnbedwards.io\/resume\/","description":"Proficiencies  R  catboost data.table ggplot shiny lme4 mgcv rvest rselenium tensorflow tidyverse tidymodels xgboost   Python  catboost django numpy pandas sklearn tensorflow xgboost   Julia  Dataframes.jl Flux.jl Plots.jl StatsModels.jl MixedModels.jl XGBoost.jl   SQL HTML CSS Git  Experiences Assistant Director of Data Science, Seattle Mariners 2025-Present I lead a team of data scientists on a variety of baseball projects and contribute to player evaluation discussions in our war room and draft room."}]}}