Programming assignment #5 Course: CHE1147H – Data Mining in Engineering solution


Original Work ?


5/5 - (5 votes)

1 Supervised learning

Here, you are going to use the features you generated in Assignment #3 to predict the
clients response to a promotion campaign. This is a typical classification problem in the
retail industry, but the formulation of the problem is similar to industries such as fraud
detection, marketing and manufacturing.

The clients responses are stored in the Retail Data Response.csv file from Kaggle. The
responses are binary: 0 for clients who responded negatively to the promotional campaign
and 1 for clients who responded positively to the campaign.

You will explore solving the classification problem with two different sets of features (i.e.
annual and monthly) and three different algorithms as shown in the image below.

Retail response
classification problem
Annual features
with L1
Monthly features
with L1

1.1 Import the monthly and annual data and join

In Assignment #3, you created five different feature families that capture annual and monthly
aggregations. Here, you will model the retail problem with two approaches: using annual
and monthly features.

Therefore, you need to create the joined tables based on the following
Table annual features outputs monthly features outputs
#1 annual features.xlsx mth rolling features.xlsx
#2 annual day of week counts pivot.xlsx mth day counts.xlsx
#3 days since last txn.xlsx
#4 Retail Data Response.csv Retail Data Response.csv

In both the annual and monthly features approach, you need to join at the end with table
#4, the clients responses. This is simply a table that contains the binary response of the
client to our marketing effort as described above and that is the output or label or target
that makes this a supervised learning problem.

1.2 Steps for each method (10 points)

1. Separate the inputs X and the output y in two data frames.
2. Split the data in train and test set. Use a test size value of 2/3 and set the random state
equal to 1147 for consistency (i.e. the course code value). Use the following names for

Annual X train annual y train annual X test annual y test annual
Monthly X train monthly y train monthly X test monthly y test monthly

3. Pre-process (if necessary for the method).
4. Fit the training dataset and optimize the hyperparameters of the method.

5. Plot coefficient values or feature importance.
6. Plot probability distribution for test set.

7. Plot confusion matrix and ROC curves of train/test set. Calculate precision/recall.
8. Plot decision boundary for top 2 features.

1.3 Comparison of methods (10 points)

Compare the two feature engineering (annual and monthly) and the three modeling approaches (L1 log-reg, tree, forests) in terms of the outcomes of steps 5-8.

Which combination of feature engineering and modeling approach do you select as the best to deploy in a
production environment and why? Tabularize your findings in steps 5-8 to summarize the
results and support your decision (how to organize information with tables in Markdown).