Instacart Market Basket Data Analysis - Reorder Analysis
The skills the author demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.
InstaCart market basket data analysis was a Kaggle competition that was open early 2016 and was conducted by Instacart. Instacart, a grocery ordering and delivery app, aims to make it easy to fill refrigerator and pantry with personal favorites and staples when needed. After selecting products through the Instacart app, personal shoppers review the order and do the in-store shopping and delivery for customers.
Instacart uses transactional data to develop models that predict which products a user will buy again, try for the first time, or add to their cart next during a session. The objective for this competition was to use anonymized data on customer orders over time to predict which previously purchased products will be in a user’s next order.
Data was provided as separate datasets with specific entities such as orders, products, reorders, etc. The datasets had to be combined appropriately for data analysis and visualization as well as for modeling. Data provided had no missing or null values. The training and test set were combined in a single dataset and had to be separated into different datasets. The training set contained 131209 rows, the test set contained 75000 and a prior set containing reorders contained over 3 million records. Due to computing restrains, this dataset was reduced to 300K rows for modeling.
Exploratory Data Analysis (EDA)
Number of products in each department
The following plot helps us understand how Instacart has stocked products by department. Based on the plot, the most number of products is available under the personal care department. Followed by snacks and pantry.
2. Number of products in each aisle
The following plot helps us understand how Instacart has stocked products by aisle. Based on the plot, the most number of products is available under the candy chocolates. Followed by ice cream and vitamin supplements. This contradicts with the number of products by department. However, let's analyze further.
3. Number of products based on department and aisles
The following plots divides the number of products among aisles and department. The highest number of products in personal care is vitamin supplements which was also one of the highest number of products based on aisles. Similarly candy chocolates is the highest under the department Snacks. So now we find a relationship between the number of products in department and in aisles.
4. Number of reorders in training set and priorset
There is more reorders in the prior set which is quite obvious considering the numbers of rows in the prior set
5. Reorder for each day in training set and prior set
The reorders in both dataset are quite same. The highest reorder happening on day 0 which we assume is a Sunday, followed by a Monday and then on a Saturday
Using Apriori algorithm the following set of items were obtained that were a possibility of being reordered by itself or with other items. Due to constraints of computing and time, the entire analysis could not get further than this. With more time and computing available, I would like to perform more algorithms and more analysis on the models obtained to ensure the model is close to accurate.
|0||0.106786||[100 Calorie Per Bag Popcorn]|
|1||0.097220||[100% Raw Coconut Water]|
|2||0.086337||[100% Recycled Paper Towels]|
|3||0.175343||[100% Whole Wheat Bread]|
|4||0.133578||[2% Reduced Fat Milk]|
|5||0.061625||[Aged White Cheddar Baked Rice & Corn Puffs Gl...|
|6||0.052405||[All Natural Marinara Sauce]|
|7||0.055733||[Almonds & Sea Salt in Dark Chocolate]|
|8||0.192673||[Apple Honeycrisp Organic]|
|10||0.078573||[Backyard Barbeque Potato Chips]|
|11||0.715444||[Bag of Organic Bananas]|
|12||0.082421||[Baked Aged White Cheddar Rice and Corn Puffs]|
|13||0.053965||[Baked Rice and Corn Puffs, Aged White Cheddar]|
|18||0.050326||[Blueberry on the Bottom Nonfat Greek Yogurt]|
|19||0.066269||[Boneless Skinless Chicken Breasts]|
|25||0.078435||[Cherubs Heavenly Salad Tomatoes]|
|26||0.228338||[Chips Ahoy! Chewy Cookies]|
|27||0.055421||[Chips Ahoy!/Nutter Butter/Oreo Cookies]|
|28||0.145501||[Chocolate Chip Cookies]|
|0.227818||[Chocolate Sandwich Cookies]|
|257||0.060862||[Sweet Potato Tortilla Chips]|
|259||0.050083||[Tortilla Chips, Clasico, Jalapeno Lime]|
|260||0.063635||[Total 0% Greek Yogurt]|
|261||0.084119||[Total 2% All Natural Greek Strained Yogurt wi...|
|262||0.054970||[Total 2% All Natural Low Fat 2% Milkfat Greek...|
|263||0.070602||[Total 2% Greek Strained Yogurt with Cherry 5....|
|264||0.070012||[Total 2% Lowfat Greek Strained Yogurt With Bl...|
|265||0.073998||[Total 2% Lowfat Greek Strained Yogurt with Pe...|
|266||0.110634||[Total 2% with Strawberry Lowfat Greek Straine...|
|267||0.148621||[Uncured Genoa Salami]|
|0.092576||[Unsweetened Original Almond Breeze Almond Milk]|
|271||0.093546||[Unsweetened Vanilla Almond Milk]|
|272||0.066235||[Vanilla Almond Breeze Almond Milk]|
|273||0.092195||[Vanilla Animal Cookies]|
|274||0.358797||[Vanilla Sandwich Creme Cookies]|
|275||0.053133||[Vanilla Skyr Nonfat Yogurt]|
|276||0.240053||[Vegan Oatmeal Chocolate Chip Cookies]|
|277||0.058783||[Vegan Oatmeal Raisin Cookies]|
|279||0.104222||[Whipped Cream Cheese]|
|0.203209||[White Chocolate Macadamia Nut Cookies]|
|281||0.058575||[White Chocolate Macadamia Nut Energy Bar]|
|283||0.455462||[Whole Wheat Cookies Dark Chocolate]|
|284||0.065957||[XL Emerald White Seedless Grapes]|
|286||0.083634||[YoKids Squeezers Organic Low-Fat Yogurt, Stra...|
287 rows × 2 columns