Webscraping Epicurious: An Analysis of American Taste Preferences

Christian Opperman
Posted on Feb 16, 2020

Just What Do We Like?

Living in New York City, I often walk by a restaurant I've seen hundreds of times only to notice that it's changed ownership and is now serving a completely different type of food. It makes sense, too -- according to a 2011 Business Insider study, roughly 80% of New York City restaurants close within their first five-years of operation. Anecdotally, at least, not much has changed: NYC is a competitive city, and if a restaurant doesn't cater to the taste preferences of its clientele, it's doomed for failure. But how are restaurants supposed to know what kind of food they should serve? How can they know what the taste preferences of the average person is?

To answer these questions, I turned to Epicurious.com, a recipe aggregation website. Using Python's Scrapy package, I scraped all (roughly) 36,250 recipes from the website and analyzed them in an attempt to figure out what kind of restaurant would be most popular (and therefore draw in the most clientele, therefore making the most money) to open.

Recipes: A Stand In For Taste

The key assumption and angle from which I approached this project was that recipes -- and particularly the distribution of recipes around cuisine -- were an appropriate stand-in for the eating/taste preferences of the average American consumer. There may be some problems with this assumption, most notably that it's possible that people prefer different food when they eat out then when they eat at home. However, that objection seems more likely to capture specific dishes, rather than overall cuisine types, and so I proceeded with my analysis based on this assumption.

Another assumption baked into this project was that the average American's taste preferences, as represented by recipe distribution, can be generalized to the taste preferences of New Yorkers. It doesn't make sense for a restauranteur to open up a restaurant in downtown Manhattan targeted at the taste preferences of Northern Californians, for instance. However, if New Yorkers follow trends in American taste, then using recipes as a stand-in for their preferences makes sense.

The Results

My analysis began with looking at how different types of cuisines were rated by users across all the recipes on Epicurious's website. The results, on first look, were quite shocking: it seemed like the cuisines with the highest ratings were the most niche.

However, deeper inspection revealed that many of the recipes that were most highly rated had 1) very few recipes classified as part of that cuisine, and 2) a lower number of ratings per recipe. For example, there were only nine recipes classified as Ethiopian, and none of those recipes had more than 20 reviews.

In an attempt to reduce the impact of these outliers on my analysis, I removed any cuisine that had fewer than fifty recipes listed on Epicurious. Doing so immediately changed the taste-preference map:

As we can see, many classic staples (such as steakhouses and "American" restaurants serving burgers and the like) seem to be the most popular with American eaters.

Now that I had a general idea of what kind of food Americans liked to eat, I wanted to see how the restaurants in New York stacked up. I took a look at health inspection data from the New York City Department of Health to get an idea of the types and distribution of cuisines in New York City. I then compared that to the percentage of total recipes on Epicurious.

The driving logic behind that would be that if a given cuisine's percentage of restaurants outpaced the same's percentage of recipes, that cuisine could be considered "oversaturated" in New York City. The reverse, "undersaturation" would occur if the percentage of recipes was larger than the percentage of restaurants. The target cuisines for a restauranteur looking to open a restaurant would be "undersaturated" cuisines that were relatively highly ranked in the American taste preference map shown above. The below graph elucidates the results of my analysis, with each cuisines' percentage of recipes shown by the red bar, and percentage of restaurants shown by the orange bar:

As can be seen, the cuisines that are both undersaturated and high in the breakdown of American taste preferences include: American, Vegetarian, and Italian restaurants. Vegetarian restaurants in particular are drastically underrepresented, and a well-targeted restaurant could likely achieve a fair amount of success in that sector, given its lack of competition. Additionally, of the more niche cuisines that are still popular, Moroccan and Scandinavian food seem to be cuisines for consideration.

An Added Bonus

Beyond looking at the recipes to try to figure out what kind of restaurant would make the most sense to open, I also used the recipe data I scraped to build a recipe recommendation app for those times when I knew what ingredients I had in my kitchen but wasn't sure what I wanted to make.

Recipe Recommendation App

The app allows you to find recipes in the Epicurious database based on up to three ingredients provided by the user, the type of meal (breakfast, lunch, or dinner), as well as how many ingredients the user is willing to use. The thought behind this, as above, was that more complex and time-consuming recipes require more ingredients, so the user should be able to control for the time it takes to cook by changing the number of ingredients parameter in their search.

The code for the app can be found in my GitHub - please feel free to take a look if you're interested!

Looking To The Future

As part of my analysis, I analyzed the number of ingredients in the recipes to see if Americans preferred more complex (as represented by a larger number of ingredients) or less complex (as represented by comparitively fewer ingredients) recipes. The results were somewhat inconclusive, with an indication that there was very slight increase in rating associated with a small rise in ingredients.​ However, in the future I'd like to:

  • Extend that analysis with natural language processing techniques to properly analyze not only the number but the type of ingredients (do Americans, for example, prefer sliced or diced onions in salads?)
  • Use the same to look into how preparation affects ratings (are fried foods really more popular? etc.)
  • Look into how well these results hold up across New York's five boroughs.

Thank You!

I always welcome feedback or questions on the app, so please feel free to reach out to me on my LinkedIn or to check out my code hosted on my GitHub.

About Author

Christian Opperman

Christian Opperman

Christian Opperman is a data scientist and former project manager at Mitsui & Co., Ltd. with experience in technical writing, a bachelors in Economics, and a Masters in Writing.
View all posts by Christian Opperman >

Leave a Comment

No comments found.

View Posts by Categories


Our Recent Popular Posts


View Posts by Tags

2019 airbnb Alex Baransky alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus API Application artist aws beautiful soup Best Bootcamp Best Data Science 2019 Best Data Science Bootcamp Best Data Science Bootcamp 2020 Best Ranked Big Data Book Launch Book-Signing bootcamp Bootcamp Alumni Bootcamp Prep Bundles California Cancer Research capstone Career Career Day citibike clustering Coding Course Demo Course Report D3.js data Data Analyst data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization Deep Learning Demo Day Discount dplyr employer networking feature engineering Finance Financial Data Science Flask gbm Get Hired ggplot2 googleVis Hadoop higgs boson Hiring hiring partner events Hiring Partners Industry Experts Instructor Blog Instructor Interview Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter lasso regression Lead Data Scienctist Lead Data Scientist leaflet linear regression Logistic Regression machine learning Maps matplotlib Medical Research Meet the team meetup Networking neural network Neural networks New Courses nlp NYC NYC Data Science nyc data science academy NYC Open Data NYCDSA NYCDSA Alumni Online Online Bootcamp Open Data painter pandas Part-time Portfolio Development prediction Prework Programming PwC python python machine learning python scrapy python web scraping python webscraping Python Workshop R R language R Programming R Shiny r studio R Visualization R Workshop R-bloggers random forest Ranking recommendation recommendation system regression Remote remote data science bootcamp Scrapy scrapy visualization seaborn Selenium sentiment analysis Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau team TensorFlow Testimonial tf-idf Top Data Science Bootcamp twitter visualization web scraping Weekend Course What to expect word cloud word2vec XGBoost yelp