Segment the accounts on their transactional behavior and find the accounts which are more likely to subscribe for loans.


1) Account_Number

2-91) Transaction amount aggregated on days for last 90 days

92) is_subscriber? (0/1)

My Approach:

1) Normalized the data (x-min(x)) / max(x) - min(x)

2) Clustering on column 2-91

3) Analyze the clusters to check which cluster has the maximum percentage of subscribers (is_subscriber? == 1)

4) Sort the clusters on the basis of maximum percentage of subscribers

5) The remaining non-subscribers (is_subscriber? == 0) of cluster with highest percentage are most likely to get subscribed.

But the results I am getting doesn't look promising.

The data is already prepared. No other variable can be added.


1) which data normalization to use?

2) Which distance to use in clustering?

3) Which clustering algorithm to use?

4) Considering the data if there is any other approach you can suggest?

Data can be found here: https://drive.google.com/open?id=1ydL1AQmozBlfiqz0nsM3f_E2JK2KB8tD


As you have a target (column 93: "is_subscriber"), why not opt for a regression or classification method? Clustering is more beneficial for situations where you want to extract "common features" out of your dataset but you have no information on that dataset or the dataset implication, i.e., target.

Moreover, if you want to predict future customers as "potential subscribers" or not, a regression will provide you with the prediction formula. Then you can apply that formula to future customers to predict their behavior. You can obtain such result with Logistic Regression or, if you prefer a classifier, a Random Forest.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.