0
$\begingroup$

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)

1) enter image description here

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.

2) enter image description here for this way, I can add feature above to train the models.
but the samples can come from duplicated customer but different time periods.

for 2 methods, I need to reduce number of sample for training the models too.
For examples,
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.

$\endgroup$

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.