1 of 8

AMEX Express Innovation Labs AI Hackathon

2 of 8

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.

3 of 8

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

4 of 8

American Express Innovation Labs AI Hackathon

4

Imputation of missing values:

Types of imputation we experimented with:

Mean/Median/Mode Imputation

Linear Interpolation

  • Best suited when the data are missing completely at random

  • Best suited when data is not ordered in any manner
  • Best suited when the data is ordered in a time-series manner

We ultimately used median as it led to higher performance.

Cubic Spline Interpolation

  • Provides better approximation on data with complex behaviour
  • May not capture underlying behaviour of data well
  • Too time-consuming and inefficient for to be practical

5 of 8

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.

  1. We trained various ML models to predict ind_recommended based on the selected features.
  2. We then trained a separate instance of the same ML model to predict activation, but including the ground-truth ‘ind_recommended’ column as a feature.

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.

6 of 8

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

  • Most efficient in handling the large dataset.

  • With high predictive accuracy, it yields the highest score.

We tested our algorithm with different machine learning models specialised in binary classification.

  • Due to extensive non-linear relationships in the dataset, it underperformed significantly compared to the other models
  • SVM was highly inefficient in handling the large dataset, which makes training the model infeasible.
  • NB assumes that all features are independent of one another, which is not true in this real-world application, hence leading to lower predicted scores.
  • Random Forest is not as efficient.

  • This lowered the accuracy of the model in predicting scores.

We ultimately used XGBoost as it was the most efficient and accurate in predicting the activation rate for each customer

7 of 8

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.

8 of 8

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.