CUSTOMER SCORE

1. CUSTOMER SCORE MODEL

The model will score accounts on a scale of 1000 and classify accounts according to thresholds of high risk, medium risk, and low risk are equivalent to the probability that virtual account of the business/point of sale. The input data expected to use:

  • Frequency and average value of topup transactions
  • Frequency and average value of electricity/water bill payment transactions in a month.
  • Frequency and average value of TV bill transactions in the month.
  • Frequency and average value of loan transactions during the month.
  • Number of different transaction types used
  • Behavioral data on telecommunications, Viettelpay Pro, Appsflyer can be added added during model building.

The model will analyze to determine which data is important, and then combine a number of machine learning algorithms to divide the interval, put a weight on each input data. Score of customer will be a weighted composite score from the input data points.

2. UNDERSAMPLE & OVERSAMPLE MODEL

a. UNDERSAMPLE

Take sample 1 amount of data label 0, the set of users with label 0 are those who have generated vtp transactions in June. Specifically, the label distribution ratio of the data is as follows

  • Fraud class: 8789 (0.81%)
  • No fraud class: 1076448 (99.19%)

With this method, the current Xgboost model has the best results in terms of indicators With the Oversample method, label 1 data is generated by running the model GAN, WGAN or SMOTE, but the results are not significantly improved, even WGAN and SMOTE are worse.

b. OVERSAMPLE

b.1. SMOTE (Synthetic Minority Oversampling Technique) - Recall is high but precision is very low

b.2. Generative Adversarial Networks

  • GAN: The original (“vanilla”) GAN
  • CGAN: A conditional version of the original GAN that makes use of class labels
  • WGAN: The Wasserstein GAN (with gradient-penalty)
  • WCGAN: A conditional version of the Wasserstein GAN

CGAN differs from GAN in that it requires an additional column of labels as input. This label is extracted from a clustering algorithm like Kmeans, .. but the data is in the same cluster, so the result is not much different from the GAN version.

Label 1 data is generated by running the GAN model, or WGAN. After adding more data (about 100000 records generated from WGAN) for the best running model, XGboost, the results were not significantly increased. Using GAN gives even worse results.

=> The generated data is not matched with the original label 1 data, causing the model to learn nothing more and possibly causing noise to the model. Confusion matrix of Xgboost when training with data generated from WGAN

3. Use lightgbm to evaluate features

The figure below shows the contribution of each feature compared to each feature that generates the score output of the model of a cheat money subscriber. The base value is the average score of all samples. The value of not using sms_banking and account_age contributes a lot in detecting fraudulent subscribers.

Account age (account_age) has the biggest impact on the model. After training with lightgbm with only this feature, the model got auc ~ 0.92. The distribution of value between the two labels of this feature is very different, most of the accounts that violate electricity bills are newly created accounts.

Get in Touch!

This website showcases my research interest, past and current work, and experiences.

Contact me!