Starting a new algorithm or Refactoring an exisiting algorithm
Make sure you are using the processing.dataset_for_surv_analysis() as your input
The train_test_split being used in the algorithms currently does a random split of the dataset
The problem with that is that, our data is temporal in nature
The main problem with that is that, you can't use future data points to predict the past.
Hence the whole logic of train test split needs to be re-written
The approach is to first sort the dataset on the basis of install_date.
Once the dataset is sorted, take the first 80% or 70% or your desired percentage of the samples for training and the rest for testing.
After splitting the dataset into training and testing, check the distributions of breaks and no breaks.
Make sure that your testing period has certain breaks happening in it.
If you see that the distribution between breaks and no breaks is significantly large, you need to use a synthetic oversampling or undersampling method.
Deven proposed using SMOTE for this.
Other approaches also exist like AdaSyn, Border SMOTE, they can be explored and their results can be compared.