1
$\begingroup$

The problem is a binary classification one. My dataset contains users with activity over multiple days, where they all start with class 0 and can become class 1 after a certain activity (which is not part of the input features). If I have 1000 class 0 users and 100 class 1 users, I will have 1100 training instances.

What I want to do is expand the data such that for each day of activity of each user, there is a row in the training set. So user 1 with 10 days of activity will have 10 rows in the training data, all with class 0, instead of 1 row. User 2 who has 10 days at class 0 and 5 days at class 1 will have 15 rows instead of 1.

This can give the model multiple times more examples to learn from. The only drawback I see is that it will change the ratio of class 0 to class 1 examples (not sure if that is a problem). Are there any unforeseeable disadvantages to this approach?

$\endgroup$
1
  • 1
    $\begingroup$ It is pretty hard to say what are the features of the dataset from the question alone. Is there a limited number of possible activities, and a user can perform several of them -but not all - on a single day? Or there is just a single "activity" concept and a user may or may not perform it on a specific day? In the end you want to know whether a user did "something" (class 1) based on everything else he did - but the "everything else" is a little vague here. Add more background. $\endgroup$
    – grochmal
    Commented Jun 4, 2019 at 19:48

1 Answer 1

1
$\begingroup$

One problem is that you insert correlated data points. Different days from the same user (may) have some underlying correlations that the days from different users don't. These correlations might be relevant for the classification task, and the model might learn them, instead of learning the relevant features.

This doesn't mean it's a bad thing. Data augmentation is a thing. For example, a common practice when training models such as CNNs on images is to perform data augmentation by rotating/scaling the initial images.

However, make sure you don't touch the validation data. The data augmentation is performed after the train-validation split. The validation data should be as "raw" as possible. You can test it this way, and see how it impacts the performance of your model.

$\endgroup$
1
  • $\begingroup$ What you mentioned about creating correlated data would surely be the case. Point taken about not touching the validation set. Thank you for your input. $\endgroup$ Commented Jun 5, 2019 at 7:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.