Impersonating a critic through linear regression

I was curious about how we can simulate a someone’s opinion of movies using linear regression. Today, I will go over in five steps how we can scrape data from BoxOfficeMojo and IMDB and engineer the perspective of a fan of small internationally-successful studios.

Pt. 1: Where does our critic go for information?

Media, media media. If the critic is the chef, media is the ingredient. That’ll be the eyes of our critic, the data that our totally-reasonable judgements will originate from. Take this movie I just made up, for instance, “The Great Cat Chase”. …

Here’s the source code for this tutorial so that you can follow along, and you can just run to see the results.

Motivation for this

SHAP plots can be very useful for model explainability (see here for a great talk on them).

As part of a recent project on displaying a logistic regression of League of Legends data using SHAP (you can see the project web app here and a screenshot below), I struggled to find a way to display SHAP plots on page load without having to save the image first. …

As a project I did for linear regression of movies called the “Liamometer” (you see it here), I scraped data using Scrapy. This article will cover building a web-crawler that stores in a CSV all movie titles from 2017–2020 as listed on BoxOfficeMojo.

Photo by Markus Spiske on Unsplash

Getting started with Scrapy (terms & setting up)

Scrapy is a framework used for webscraping. Webscraping is pulling data from websites for use in your outside app; we do it when we do not have an API to use. Scrapy is very fast, so it’s nice to use.

Terms you should know

Spiders: Scrapy uses “spiders” which are our blueprints. That is where we put in the instructions for…

My goal in this project is to have a computer digitally digest my own music based on objects and re-create the space I composed a song in (my kitchen). This is the first step in a larger journey of mine to want to study how the computer as an object plays into our musical consciousness, along with my general desire to give a computer greater agency over its own sound by leveraging image data as opposed to music files as data sources.

Introduction: can music be a reflection of how we perceive objects?

I think that music is an experience of time/space separate from other languages like English. There may be…


League of Legends is a 5v5 team-based game where each player can select a champion (out of 154 options) and role (top, jungle, mid, adc/bot, support/bot). The game’s competitive scene is vibrant and global, with a *definitely not toxic* ranked match-making option where players can compete amongst themselves and climb the ELO ladder to rank up. I wanted to see if a machine learning model could answer the common question players might have about their matches: “what did I do this game that helped or hurt my chances of winning, and how much did each thing that happened matter?”


Hi, I’ve spent about 6 months working on creating d3js graphs from gSheets data. I want to share that with you. This is a super in-depth tutorial.

Table of contents: I. Intro: Why do this at all? II. How does it work? III. Following the 4 steps. IV. Conclusion, with links to my sample design/gSheet, github codes for the script, and some general thoughts.

Note: if you’re using Observable or otherwise want to embed a d3js graph into a google-apps-script web-app, only follow up steps 1–2. The rest of it is much, much simpler if you understand Runtime. …

Liam Isaacs

叶秋 pianist & data scientist,

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store