I am relatively new to the data science area and just have a question about how to approach a time specific machine learning problem. Just as an FYI I am currently using a random forest classifier for my approach.

I have a set of data containing some customer specific features such as number of products they have, their age, how many days they've been a customer etc. But alongside that for each customer I also have usage history containing aggregated usage values for each month in a 12 month period. From this data I am trying to predict whether a customer is likely to leave at somepoint soon based upon their customer specific features but also their last 3 months of usage history.

At the moment if someone has left I take their most recent 3 months of aggregated usage as 3 features and label them as a leaver. If someone doesn't leave I take the most recent 3 months of usage that I have (DEC, NOV, OCT) for all of those customers and label them as a non leaver. I am fully aware that this is a naive approach as if the last months of usage was different due to general seasonality trends to other months in my data then my algorithm would identifying people due to this rather than because of actual differences in their usage. E.g if on average people have much higher usage in the last 3 months of the year, then if someone has high usage; classify them as a non-leaver. Because if they were a leaver then on average they would have a lower usage, but this deduction would purely be due to the seasonality trends of the labled non-leavers rather than a difference between the customers.

I have thought of another approach where each combination of consecutive 3 months of data can be taken for each customer and then labled as a leaver or non leaver depending on if they leave within the next month. So for a customer that leaves in june, we can have jan,feb,march usage alongside their normal customer features labled as a non-leaver, have feb, march, april as a non-leaver, but then have march, april, may labled as a leaver. Thereby having multiple entries for each customer labled as non-leaver or leaver depending on if they leave directly after those 3 months.

I am just wondering if this would then decrease the usefulness of the customer specific features as for each customer their customer specific features are being encoded as a non-leaver and also a leaver, the only difference being the usage values.

I feel that this may be counteracted as it would just be scaling each customer by a set number of times but am unsure. I am just wondering if this new approach would be beneficial or if there is a different approach I should be using for this style of data. The other option would be that actually the seasonality in the data isn't changing much at all and the months are all quite similar on average thus meaning the initial method may still be valid.

Thanks and hope that makes sense,



Your Answer

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

Browse other questions tagged or ask your own question.