I am doing a customer retention/churn prediction project where I have a dataset where each row comprises a customer's data/activity. Each column comprises the past 6 months of a customer's activity/behavior: past_6months_no_of_orders
, past_6months_total_gmv
, past_6months_total_logins
, past_6months_time_spent_on_app
, tenure
, etc. (The past 6 months are taken rolling back from start of the fully completed month. For example, if the current date is 10-12-2021, I take June to November 2021 data.) The goal is predicting/classifying whether they churn or not in the next month.
Example of the dataset:
customer_id | past_6_months_orders | past_6_months_gmv | past_6_months_xx | churn_indicator |
---|---|---|---|---|
01234 | 32 | 2,223 | xx | 0 |
01235 | 2 | 21 | xx | 1 |
Currently, I split my data 80% train and 20% test as of Nov 2021. If I want to start front testing my model for the upcoming months, I realized that I can't use this split method because I wont be able to predict the 80% of customers that were used as training data to train my model.
How should I change the input of my dataset to train and test my model as the new months of data come in? Can I use the same customer data to train my model? and test it using the same customer data, but with newer months of data?