AMEX Express Innovation Labs AI Hackathon
American Express Innovation Labs AI Hackathon
2
Feature Engineering
We eliminated features with high number of null values as this indicated insufficient data available:
We conducted empirical testing to determine the optimal threshold of null values that we would use for feature elimination - we trained the model with the different thresholds and evaluated if it affected performance through metrics like accuracy and feature_importance.
Null Values
The ideal threshold was determined to be 9 million.
American Express Innovation Labs AI Hackathon
3
Feature Engineering
We selected features with low correlation between each other and high correlation with the target variables:
Collinearity
We determined that we should eliminate features with more than absolute values of 0.8
High collinearity between each independent variable often leads to:
Overfitting, where the model captures both the underlying trends in the data (signal) and the stochastic error inherent to the dataset (noise)
inflating the standard errors of the regression coefficients, leading to less precise estimates and difficulties in detecting significant predictors
American Express Innovation Labs AI Hackathon
4
Imputation of missing values:
Types of imputation we experimented with:
Mean/Median/Mode Imputation
Linear Interpolation
We ultimately used median as it led to higher performance.
Cubic Spline Interpolation
American Express Innovation Labs AI Hackathon
5
Our Algorithm
Sampling
Training
Predicted Score Calculation
Testing
Starting with randomly sampling 100 000 data points, we gradually increased to 12,229,978 (size of train dataset) for model training.
We split the features into X and y to predict ind_recommended followed by activation. We used 5-fold sampling to obtain 5 sets of train and test datasets to ensure model reliability.
Using the equation: P(activation = 1 | ind_recommended = 1) * P(ind_recommended = 1) - P(activation = 1 | ind_recommended = 0) * P(ind_recommended = 0), we calculated the pred_col.
With the trained models, we first predicted (on the eval dataset) the probabilities of a merchant being recommended to a customer or not (ind_recommended = 0/1).
Then, we predicted (also on eval) the probabilities of a customer activating GIVEN that a merchant was recommended, and GIVEN that a merchant was NOT recommended.
American Express Innovation Labs AI Hackathon
6
1
XGBoost
2
Logistic Regression
3
Naive Bayes
4
Random Forest
5
Support Vector Machine (SVM)
Machine Learning Models
We tested our algorithm with different machine learning models specialised in binary classification.
We ultimately used XGBoost as it was the most efficient and accurate in predicting the activation rate for each customer
American Express Innovation Labs AI Hackathon
7
Generation of pred_col
P(activation given that merchant is recommended) * P(merchant is recommended) -
P(activation given that merchant is NOT recommended) * P(merchant is NOT recommended)
Predicted Score
This approach yielded a higher objective score
Instead of simply predicting the probability of a customer activating given whether the merchant was recommended or not, we decided to include the probability of the merchant being recommended in the first place.
American Express Innovation Labs AI Hackathon
8
Optimisation of objective score
We realised that by giving greater weight to the probability of activation given that a merchant was recommended, the objective score improved significantly.
We achieved this by multiplying the first part of the expression, P(activation = 1 | ind_reco = 1) * P(ind_reco = 1) by some constant alpha.
Then, to determine the optimal value of alpha, we simply performed binary search between our initial guesses of 1.5 ≤ alpha ≤ 10.
The ideal alpha was determined to be approximately 3.00.