What is the purpose of a train-test split in machine learning?
It is used to divide data into two parts: one for training the model and one for testing its performance on new, unseen data.
Click to reveal answer
beginner
What typical ratio is used for train-test split?
A common ratio is 70% to 80% of data for training and 20% to 30% for testing.
Click to reveal answer
beginner
Why should the test set be separate from the training set?
To check if the model can generalize well to new data and avoid overfitting to the training data.
Click to reveal answer
beginner
What Python library and function is commonly used for train-test splitting?
The scikit-learn library with the function train_test_split from sklearn.model_selection.
Click to reveal answer
intermediate
How does random_state parameter affect train-test split?
It sets a seed for random shuffling so the split is reproducible and consistent across runs.
Click to reveal answer
What is the main goal of splitting data into train and test sets?
ATo evaluate model performance on unseen data
BTo increase training data size
CTo reduce the number of features
DTo speed up model training
✗ Incorrect
The test set helps check how well the model performs on new data it hasn't seen before.
Which of these is a common train-test split ratio?
A50% train, 50% test
B90% train, 10% test
C70% train, 30% test
D10% train, 90% test
✗ Incorrect
70% train and 30% test is a typical split to balance training and evaluation.
What does the random_state parameter do in train_test_split?
ASets the size of the test set
BControls random shuffling for reproducibility
CSpecifies the model type
DNormalizes the data
✗ Incorrect
random_state ensures the split is the same every time you run the code.
Why should the test set not be used during training?
ATo avoid overfitting and get an unbiased evaluation
BIt helps tune hyperparameters
CIt contains only noise
DIt is smaller than the train set
✗ Incorrect
Using test data in training can cause the model to memorize it, giving a false sense of accuracy.
Which Python function is used to split data into train and test sets?
Asplit_data()
Bdata_split()
Ctrain_test()
Dtrain_test_split()
✗ Incorrect
train_test_split() from sklearn.model_selection is the standard function.
Explain why train-test split is important in machine learning.
Think about how you test a recipe by trying it on new guests, not just the cook.
You got /4 concepts.
Describe how you would perform a train-test split using Python.
Remember the function name and its main parameters.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of using a train-test split in machine learning?
easy
A. To check how well the model performs on new, unseen data
B. To increase the size of the training data
C. To reduce the number of features in the dataset
D. To speed up the training process by using less data
Solution
Step 1: Understand the purpose of train-test split
Train-test split divides data into training and testing parts to evaluate model generalization.
Step 2: Identify the correct purpose
The test set simulates new data to check model performance outside training data.
Final Answer:
To check how well the model performs on new, unseen data -> Option A
Quick Check:
Train-test split = Check model on new data [OK]
Hint: Train-test split tests model on unseen data [OK]
Common Mistakes:
Thinking it increases training data size
Confusing it with feature selection
Believing it speeds up training by reducing data
2. Which of the following is the correct way to import the train_test_split function from scikit-learn?
easy
A. from sklearn import train_test_split
B. import train_test_split from sklearn
C. from sklearn.model_selection import train_test_split
D. import train_test_split from sklearn.model_selection
Solution
Step 1: Recall correct import syntax in Python
Python uses 'from module import function' to import specific functions.
Step 2: Match with sklearn structure
The function is in sklearn.model_selection, so correct import is from sklearn.model_selection import train_test_split.
Final Answer:
from sklearn.model_selection import train_test_split -> Option C
Quick Check:
Correct import = from sklearn.model_selection import train_test_split [OK]
Hint: Use 'from sklearn.model_selection import train_test_split' [OK]
Common Mistakes:
Using wrong import order
Trying to import directly from sklearn
Using 'import' instead of 'from ... import'
3. What will be the output shape of X_train and X_test after this code?
from sklearn.model_selection import train_test_split
X = [[1], [2], [3], [4], [5]]
X_train, X_test = train_test_split(X, test_size=0.4, random_state=42)
print(len(X_train), len(X_test))
medium
A. 2 3
B. 5 0
C. 4 1
D. 3 2
Solution
Step 1: Calculate test set size
Test size is 40% of 5 samples = 2 samples in test set.
Step 2: Calculate train set size
Remaining samples go to train set: 5 - 2 = 3 samples.
Final Answer:
3 2 -> Option D
Quick Check:
Train size = 3, Test size = 2 [OK]
Hint: Multiply total by test_size for test count [OK]
Common Mistakes:
Rounding test size incorrectly
Swapping train and test sizes
Ignoring random_state effect on split size
4. Identify the error in this code snippet:
from sklearn.model_selection import train_test_split
X = [1, 2, 3, 4, 5]
X_train, X_test = train_test_split(X, test=0.3)
print(X_train, X_test)
medium
A. The parameter name should be test_size, not test
B. train_test_split cannot split lists, only arrays
C. random_state parameter is missing
D. X should be a 2D list, not 1D
Solution
Step 1: Check parameter names for train_test_split
The correct parameter to set test set size is 'test_size', not 'test'.
Step 2: Confirm other parameters
train_test_split accepts lists and random_state is optional; 1D list is valid input.
Final Answer:
The parameter name should be test_size, not test -> Option A
Quick Check:
Correct parameter = test_size [OK]
Hint: Use 'test_size' parameter name exactly [OK]
Common Mistakes:
Using 'test' instead of 'test_size'
Thinking random_state is mandatory
Believing input must be 2D
5. You have a dataset with 1000 samples. You want to split it so that the test set has exactly 250 samples. Which test_size value should you use in train_test_split?
hard
A. 0.3
B. 0.25
C. 0.2
D. 0.4
Solution
Step 1: Calculate test_size fraction
Test samples desired = 250 out of 1000 total, so fraction = 250 / 1000 = 0.25.
Step 2: Match fraction to test_size parameter
Set test_size=0.25 to get 250 samples in test set.
Final Answer:
0.25 -> Option B
Quick Check:
Test size fraction = 250/1000 = 0.25 [OK]
Hint: Divide test samples by total samples for test_size [OK]
Common Mistakes:
Using absolute number instead of fraction
Choosing wrong fraction like 0.2 or 0.3
Confusing train_size with test_size
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.