I'm building the tree-based model like a XGBoost to solve the problem about customer purchase cycle.
And I think, I will build 2 models which one is predicting the customer will come back to store in next 8 weeks or not? and another one is predicting number of days that customer will come back to store.
let's say, I have some feature engineering that might be important feature(for my opinion) such as number of days from predicting day to next event/holiday, last spending of event/holiday in last year.
I have 2 ways to create samples to train these 2 models which below: (blue: transaction for creating feature, orange: label)
This way, the feature "number of days from predicting day to next event/holiday" will be constant because we have only 2 months to create next days event feature and label. So, I will not use the feature in training the model.
the samples will come from only 1 sample for each customer.
for 2 methods, I need to reduce number of sample for training the models too.
method 1: from 1M customers(1M samples) will reduce to 100K customers(100K samples) by random sampling.
method 2: from 1M customers(~30M samples, come from transaction of each customer in every week of the year) will reduce to x customers(100K samples) by random sampling.
what is the best way should I go?
Remove the feature "number of days from predicting day to next event/holiday" and go for method 1? (assume that the feature might not important) If I go method 2, the model will easy to overfit right?
or you guys have any ideas, please suggest to me?
Thank you in advance.