Trying to understand how I should split data between (train and test) Vs. predict? I'm working on a model to predict churn. I understand the concept of training and testing, or at least I thought I did.
Let's say it's the first of the month and our database has 10,000 subscribers, in addition to 10,000 who have cancelled. I now have a dataset of 20k records. If I wanted to build a model to predict which of these 10K active subscribers are likely to cancel, with a view to sending them an email with e.g. a discount offer code, how would I split my data between training and testing, and then for prediction?
Ideas:


*

*Take the entire dataset of 20K, split 80% train and 20% test. But then, what do I predict on? Do I want to use all data to get best training since I'll have more records?

*Take a sample of say 10k records from the total dataset, test and train with 0.8 and 0.2 as above and then predict on the whole data set? But then that would mean I'm predicting on training data? That must be "wrong" surely?


This made sense in class. Now that I'm trying to apply it to real world I'm a little lost.
Of the 20k records, what would be a "traditional" way of splitting it up between test and training data, and then which data for prediction?
 A: Call your target churned/not churned, and represent it as a binary output. Now you have 20k lines, half of them being 0, the other half, 1. All the other data that you have can be considered as predictors.
Now, from this 20k lines, randomly sample say 5k of them and keep the 15k others as your train set. 
You can train your model : churned=f(predictors) on the 15k lines (don't use the remaining 5k lines now) and try different models on it. For each model you train on this set, you can evaluate its performance on the test set.
For the best model you found on the train set (or the best pair model/hyperparameters), train it on the complete set (the 20k lines).
The obtained model can be used in production and, hopefully, will have the same performances than those observed on the test set.
A: What if you ramdonly split your dataset into two?  Now you have 2 datasets each with 10K customers.  Each dataset in turn has a mix of both churned and active customers.  You can then use the first dataset, split into train/test, create a model and then use that model to predict active customers in second dataset. Curious what others think of this approach.  
PS:  I've asked a similar question but related to survival models.  Splitting between train/test for customer churn survival models
