I'm going to make a churn prediction model based on customer data from users of an app. I will have a feature set containing for example features over time related to user behavior in the app, and also constant features.

What I realize is that different users might churn for different reasons. New users might churn because they don't understand the purpose of the app and what value it can provide. Features showing this could be number of products, number of app features the user has used etc. Older users might churn because of other reasons, such app crashes or changed life situation.

What I want to do is to create customer segments based on feature selection. That is, I don't want to make 1 model (because I don't think 1 model fits all), I want to make X nr of models. For example, let's say that we do feature selection along a chosen dimension (number of days the user has been an app user). What would be nice to have, is to see that for days 1-40 we have that features {a, b, c} are important, for days 41-100 it's {a, d, e} and for 100-150 it's {a, b, e, f}.

A clarification: the difference in optimal features should be the input to the segmentation. Let's say that there's no big difference in features for 1-40 days but after that it starts to change and other features are more prominent. Then we know that it would be good to make a segment of 1-40 and then continue to look at differences along the dimension. What I can't wrap my head around is how I would write such an algorithm for this kind of segmentation - a segmentation based on differences in optimal features. Hypothetically it wouldn't have to be 1D, could also be 2D or 3D for example.

My question is: is this a normal approach? Is it called anything? Does it seem reasonable? How would I do this in a good way?


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.