Bird
Raised Fist0
ML Pythonml~5 mins

Handling categorical variables in ML Python - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a categorical variable in machine learning?
A categorical variable is a type of data that represents categories or groups, like colors or types of animals, rather than numbers.
Click to reveal answer
beginner
Why can't machine learning models use categorical variables directly?
Most models need numbers to do math, so categorical variables must be changed into numbers before training.
Click to reveal answer
beginner
What is one-hot encoding?
One-hot encoding turns each category into a new column with 1 or 0, showing if the category is present or not.
Click to reveal answer
intermediate
What is label encoding and when is it useful?
Label encoding assigns a unique number to each category. It is useful when categories have an order, like small, medium, large.
Click to reveal answer
intermediate
What problem can arise if you use label encoding on categories without order?
The model might think one category is bigger or better than another because of the numbers, which is wrong for unordered categories.
Click to reveal answer
Which method creates new columns for each category with 1s and 0s?
ANormalization
BOne-hot encoding
CLabel encoding
DStandardization
When is label encoding most appropriate?
AFor ordered categories like sizes
BFor categories with no order
CFor numerical data only
DFor text data without categories
What is a risk of using label encoding on unordered categories?
AModel converts categories to text
BModel ignores the categories
CModel crashes during training
DModel treats categories as ordered numbers
Which of these is NOT a way to handle categorical variables?
AOne-hot encoding
BLabel encoding
CMin-max scaling
DFrequency encoding
Why do we need to convert categorical variables before training models?
AModels only understand numbers
BCategorical data is always missing
CModels prefer text data
DCategorical data is too large
Explain how one-hot encoding works and why it is useful for categorical variables.
Think about turning categories into separate yes/no questions.
You got /4 concepts.
    Describe the difference between label encoding and one-hot encoding and when to use each.
    Consider if categories have a natural order or not.
    You got /4 concepts.

      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