Bird
Raised Fist0
ML Pythonml~20 mins

Handling categorical variables in ML Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Categorical Variable Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Why use one-hot encoding for categorical variables?

Why is one-hot encoding commonly used to handle categorical variables in machine learning?

AIt reduces the number of features by combining categories into one number.
BIt replaces missing values in categorical data with the most frequent category.
CIt assigns a unique integer to each category, preserving their natural order.
DIt converts categories into a numeric format without implying any order between them.
Attempts:
2 left
💡 Hint

Think about how machine learning models interpret numbers and categories.

❓ Predict Output
intermediate
2:00remaining
Output of label encoding on a categorical list

What is the output of the following Python code using sklearn's LabelEncoder?

ML Python
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
categories = ['red', 'blue', 'green', 'blue', 'red']
encoded = le.fit_transform(categories)
print(list(encoded))
A[0, 0, 1, 1, 0]
B[1, 2, 0, 2, 1]
C[2, 0, 1, 0, 2]
D[0, 1, 2, 1, 0]
Attempts:
2 left
💡 Hint

LabelEncoder assigns integers in alphabetical order of categories.

❓ Model Choice
advanced
2:00remaining
Best model choice for high-cardinality categorical data

You have a dataset with a categorical feature containing 10,000 unique categories. Which model is best suited to handle this feature without extensive preprocessing?

ADecision Tree without encoding the categorical feature
BGradient Boosting with target encoding of the categorical feature
CLinear Regression with one-hot encoding of the categorical feature
DK-Nearest Neighbors with label encoding of the categorical feature
Attempts:
2 left
💡 Hint

Consider how models handle many categories and the risk of too many features.

❓ Hyperparameter
advanced
2:00remaining
Choosing encoding method for tree-based models

Which encoding method is generally preferred for categorical variables when using tree-based models like Random Forest or XGBoost?

ALabel encoding to assign integers to categories
BBinary encoding to reduce dimensionality
CFrequency encoding to replace categories with their counts
DOne-hot encoding to create binary features for each category
Attempts:
2 left
💡 Hint

Tree models can split on integer values without assuming order.

❓ Metrics
expert
2:00remaining
Evaluating impact of encoding on model performance

You trained two models on the same dataset: Model A uses one-hot encoding for categorical variables, Model B uses target encoding. Both models are gradient boosting classifiers. Model A has 85% accuracy, Model B has 88% accuracy on the test set. What is the most likely explanation?

ATarget encoding helped Model B capture category information better, improving accuracy.
BOne-hot encoding always causes overfitting, so Model A performs worse.
CModel B's higher accuracy is due to random chance and not encoding choice.
DOne-hot encoding is better for gradient boosting, so Model A should have higher accuracy.
Attempts:
2 left
💡 Hint

Think about how encoding affects feature representation and model learning.

Practice

(1/5)
1. Why do we need to convert categorical variables into numbers before using them in machine learning models?
easy
A. Because most machine learning algorithms only understand numbers, not words.
B. Because numbers take less memory than words.
C. Because categorical variables are always continuous data.
D. Because converting to numbers makes the data look nicer.

Solution

  1. Step 1: Understand machine learning input requirements

    Most machine learning models work with numerical data and cannot process text or categories directly.
  2. Step 2: Reason why conversion is necessary

    Converting categories to numbers allows models to perform calculations and learn patterns from the data.
  3. Final Answer:

    Because most machine learning algorithms only understand numbers, not words. -> Option A
  4. Quick Check:

    Machine learning needs numbers = D [OK]
Hint: Remember: ML models need numbers, not words [OK]
Common Mistakes:
  • Thinking categorical variables are continuous data
  • Believing conversion is just for memory saving
  • Assuming conversion is for aesthetics
2. Which of the following is the correct way to apply one-hot encoding using pandas on a column named color?
easy
A. pd.encode_onehot(df.color)
B. df['color'].label_encode()
C. df.one_hot_encode('color')
D. pd.get_dummies(df['color'])

Solution

  1. Step 1: Recall pandas one-hot encoding method

    Pandas provides get_dummies() to convert categorical columns into one-hot encoded columns.
  2. Step 2: Match correct syntax

    The correct syntax is pd.get_dummies(df['color']). Other options are not valid pandas methods.
  3. Final Answer:

    pd.get_dummies(df['color']) -> Option D
  4. Quick Check:

    Use pd.get_dummies for one-hot encoding [OK]
Hint: Use pd.get_dummies for one-hot encoding in pandas [OK]
Common Mistakes:
  • Using non-existent pandas methods
  • Confusing label encoding with one-hot encoding
  • Calling methods on dataframe incorrectly
3. Given this code snippet:
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['size_encoded'] = le.fit_transform(df['size'])
print(df['size_encoded'].tolist())

If df['size'] contains ['small', 'medium', 'large', 'medium'], what will be the printed output?
medium
A. [0, 1, 2, 1]
B. [2, 1, 0, 1]
C. [1, 2, 0, 2]
D. [0, 2, 1, 2]

Solution

  1. Step 1: Understand LabelEncoder mapping

    LabelEncoder assigns integers in alphabetical order: 'large'->0, 'medium'->1, 'small'->2.
  2. Step 2: Map each value in the list

    Input list: ['small', 'medium', 'large', 'medium'] maps to [2, 1, 0, 1].
  3. Final Answer:

    [2, 1, 0, 1] -> Option B
  4. Quick Check:

    Alphabetical order encoding = A [OK]
Hint: LabelEncoder assigns numbers alphabetically [OK]
Common Mistakes:
  • Assuming encoding follows input order
  • Mixing up label encoding with one-hot encoding
  • Forgetting zero-based indexing
4. You tried to apply one-hot encoding on a categorical column but got an error: ValueError: Input contains NaN, infinity or a value too large for dtype('float64'). What is the most likely cause and fix?
medium
A. The column has missing values; fill or drop them before encoding.
B. The column is numeric; convert it to string first.
C. The one-hot encoder only works on integers; convert categories to integers first.
D. The dataset is too large; reduce its size.

Solution

  1. Step 1: Analyze the error message

    The error mentions NaN (missing) or infinite values, which cause encoding to fail.
  2. Step 2: Identify fix for missing values

    Fill missing values with a placeholder or drop rows before encoding to avoid errors.
  3. Final Answer:

    The column has missing values; fill or drop them before encoding. -> Option A
  4. Quick Check:

    Handle missing data before encoding [OK]
Hint: Check for missing values before encoding [OK]
Common Mistakes:
  • Ignoring missing values in categorical columns
  • Trying to encode numeric columns as categories
  • Assuming dataset size causes this error
5. You have a dataset with a categorical feature education_level having values: ['high school', 'bachelor', 'master', 'phd']. You want to use this feature in a regression model where order matters. Which encoding method should you choose and why?
hard
A. One-hot encoding, because it creates separate columns for each category.
B. Random encoding, to avoid bias in the model.
C. Label encoding, because it preserves the order of categories as numbers.
D. No encoding needed, use categories as strings directly.

Solution

  1. Step 1: Understand the nature of the feature

    Education levels have a natural order: high school < bachelor < master < phd.
  2. Step 2: Choose encoding that preserves order

    Label encoding assigns numbers reflecting order, suitable for regression models that consider magnitude.
  3. Final Answer:

    Label encoding, because it preserves the order of categories as numbers. -> Option C
  4. Quick Check:

    Ordered categories use label encoding [OK]
Hint: Use label encoding for ordered categories [OK]
Common Mistakes:
  • Using one-hot encoding for ordered categories
  • Ignoring order importance in encoding
  • Trying to use strings directly in models
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard