Data Visualization of the NYC Restaurant Safety Inspection

Posted on Oct 24, 2016
The skills the author demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.

I. Introduction

Living in New York City for more than two years now, I always enjoy the various, delicious cuisines the city has to offer. One thing I always notice every time I enter a restaurant is the safety grade in huge letters on the window of the restaurant. The grading sure helps me filter out a lot of restaurants. So as an aspiring data scientist, I decided to look into the safety inspection system and see if I could find any interesting factors that influence the grading.

During an inspection, multiple citations will be given to a restaurant depending on safety and hygienic violations. Each citation corresponds to a violation score based on the violation category and its critical conditions. Then the inspection grade is given based upon the number of violations the restaurant receives after inspection. Restaurants with a score between 0 and 13 points will receive an A, those with 14 to 27 points will receive a B, and 28 or more points will receive a C.

The inspection data was obtained from the NYC Open Data library. Two features that jumped out immediately were the borough location of the restaurant and its cuisine type. This will be the starting point for my EDA.

II. Preprocessing the Data

Data Cleaning

The raw dataset was composed of over 440 thousand of inspection observations with 18 different factors/features. The following tasks were performed for the initial data cleaning:

- Removal of the nonsensical observations, such as blank restaurant names, absurd dates, etc

- Changing of the categorical variables into factors for visualization

- Creating additional features for analysis

Data Manipulation

After the data was cleaned, some preprocess manipulations were done for ease of analysis

- Due to the NYC Health Department grading process, not every restaurant receives a grade after an inspection; some will only receive a violation score. For this analysis, I converted the score to its respective grade.

- The raw data separates the restaurants into 85 different types of cuisine. I reduced and renamed the initial 85 categories of cuisine to 24 categories for ease of visualization

- The dataset contains multiple inspection visits per each restaurant. Since I was interested only in the latest inspection data, I filtered the dataset to obtain a unique inspection for each restaurant

III. Exploratory Data Analysis
Inspection Grade vs Location

One feature that was very important was the location of the restaurant, so I decided to visualize the number of restaurants by borough and their respective grades.

 

Data Visualization of the NYC Restaurant Safety Inspection

Observations:

- Manhattan has the most restaurants of all five boroughs

- Grade A was is the most frequent rating in all boroughs

Inspection Grade vs Cuisine Type

The second prominent feature related to the inspection grade is the type of cuisine. So I visualized the relationship between the cuisine type and the respective grades.

Data Visualization of the NYC Restaurant Safety Inspection

 

Observations:

- The grade distribution for the cuisine type is similar to the grade vs location plot, where the majority of restaurants receive grade A.

- The bar plot also displays the fact that American cuisine is the most common in NYC, followed Chinese and Pizza.

Inspection Grade vs Cuisine Type by Percentage

To explore deeper into the relationship between cuisine type and inspection grade, I decided to plot the percentage of the inspection grade within each cuisine.

Data Visualization of the NYC Restaurant Safety Inspection

Observations:

- Juices/Smoothies/Ice Cream/Yogurt shops show the highest percentage of grade A scores, followed by French restaurants and then Cafe/Coffee/Tea shops.

- Latin/Hispanic restaurants show the lowest grade A percentage.

Violation Citations and Cuisine Type

Another important aspect I would like to explore is the number of violation citations a restaurant received during its latest inspection. The number of violation citations is plotted against the cuisine type in the similar plot as above, this could potentially provide additional information.

g4

Observations:

- This plot shown similar distribution compared to the inspection grade vs cuisine type plot. Small juice/ice cream shops and cafe/coffee shops received lowest number of citations (~2 citations/shop) with a relatively big margin compared to the rest.

- South Asian cuisines received the highest number of citations per restaurant. It had the second  lowest grade A percentage in the previous plot.

Furthermore, I would like to see this distributions across each individual borough, so I plotted a facet plot containing all five boroughs.

 

g5

Observations:

- The plots shown similar distributions across all five boroughs.

- There is no Korean restaurant in the Bronx, and no French restaurant in Staten Island recorded in the data.

Density Curve of Average Violation Score vs Location

The last aspect I wanted to explore was the violation score. It is important because it directly derives the inspection grade. I plotted the density of the average violation scores per restaurant, separated by the five boroughs.

 

g6

Observations:

- The distributions are very similar across all boroughs.

- The highest peak occurs at the lower range of grade A, meaning that most grade A restaurants received a score in this range. This shows that although every restaurant wants to get an A grade, most of them exert the least effort to get and maintain it.

Heatmap of Violation Score by Cuisine Type and Location

A heatmap was created to visualize the scores between cuisine and location

g7

Observations:

- The heatmap shows similar relationship as the facet map earlier, as it also shows the absence of Korean cuisine in Bronx and French cuisine in Staten Island.

- However, the heatmap visualizes extremas more clearly. The darker cells represent higher violation scores (worse hygiene), and lighter cells represent lower violation scores (better hygiene).

Zip Choropleth of Violation Score

To get a better idea of how the restaurant violation score spread throughout NYC, I plotted a choropleth based on the zipcode of each restaurant.

 

g8

Observations:

- Most of Staten Island, South Brooklyn, and East Queens (Flushing) show higher violation scores. Astoria and Long Island City show lower violation scores. Manhattan is spread with both high and lower violation scores.

IV. Conclusion and Future Work

- There is definitely a relationship between restaurant location, cuisine type, and the inspection grade. But statistical testing is needed to observe any significance between the factors.

- The location can be further divided by neighborhood for detailed examination of restaurants surrounding.

About Author

Alex Yuan Li

Alex Li received his Master of Science in Mechanical Engineering at Columbia University and Bachelor of Science in Chemical Engineering at University of Utah with professional experience in Research and Development in the Medical Device industry. He discovered...
View all posts by Alex Yuan Li >

Leave a Comment

Eat out - at your own risk?: Analyzing NYC restaurant health inspection results using Tableau Public - Information Visualization January 11, 2019
[…] #2: NYC Restaurant Health Inspection Data – Visualizations and analysis by Alex Yuan Lin […]
Raviteja November 4, 2016
Can you let me know how the violation score is calculated

View Posts by Categories


Our Recent Popular Posts


View Posts by Tags

#python #trainwithnycdsa 2019 2020 Revenue 3-points agriculture air quality airbnb airline alcohol Alex Baransky algorithm alumni Alumni Interview Alumni Reviews Alumni Spotlight alumni story Alumnus ames dataset ames housing dataset apartment rent API Application artist aws bank loans 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 boston safety Bundles cake recipe California Cancer Research capstone car price Career Career Day citibike classic cars classpass clustering Coding Course Demo Course Report covid 19 credit credit card crime frequency crops D3.js data data analysis Data Analyst data analytics data for tripadvisor reviews data science Data Science Academy Data Science Bootcamp Data science jobs Data Science Reviews Data Scientist Data Scientist Jobs data visualization database Deep Learning Demo Day Discount disney dplyr drug data e-commerce economy employee employee burnout employer networking environment feature engineering Finance Financial Data Science fitness studio Flask flight delay gbm Get Hired ggplot2 googleVis H20 Hadoop hallmark holiday movie happiness healthcare frauds higgs boson Hiring hiring partner events Hiring Partners hotels housing housing data housing predictions housing price hy-vee Income Industry Experts Injuries Instructor Blog Instructor Interview insurance italki Job Job Placement Jobs Jon Krohn JP Morgan Chase Kaggle Kickstarter las vegas airport lasso regression Lead Data Scienctist Lead Data Scientist leaflet league linear regression Logistic Regression machine learning Maps market matplotlib Medical Research Meet the team meetup methal health miami beach movie music Napoli NBA netflix Networking neural network Neural networks New Courses NHL nlp NYC NYC Data Science nyc data science academy NYC Open Data nyc property NYCDSA NYCDSA Alumni Online Online Bootcamp Online Training Open Data painter pandas Part-time performance phoenix pollutants Portfolio Development precision measurement prediction Prework Programming public safety PwC python Python Data Analysis python machine learning python scrapy python web scraping python webscraping Python Workshop R R Data Analysis 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 seafood type Selenium sentiment analysis sentiment classification Shiny Shiny Dashboard Spark Special Special Summer Sports statistics streaming Student Interview Student Showcase SVM Switchup Tableau teachers team team performance TensorFlow Testimonial tf-idf Top Data Science Bootcamp Top manufacturing companies Transfers tweets twitter videos visualization wallstreet wallstreetbets web scraping Weekend Course What to expect whiskey whiskeyadvocate wildfire word cloud word2vec XGBoost yelp youtube trending ZORI