The key purpose of splitting the dataset into training and test sets is:

a. To speed up the training process

b. To reduce the amount of labeled data needed for evaluating classifier accuracy

c. To estimate how well the learned model will generalize to new data

d. To reduce the number of features we need to consider as input to the learning