What is the purpose of encoding categorical variables in data science?
Encoding categorical variables means changing categories into numbers so computers can understand and work with them in models.
Click to reveal answer
beginner
What is one-hot encoding?
One-hot encoding creates new columns for each category and marks a 1 if the row has that category, otherwise 0. It avoids giving categories a wrong order.
Click to reveal answer
intermediate
When should you use label encoding instead of one-hot encoding?
Use label encoding when the categories have a natural order, like 'small', 'medium', 'large'. It assigns numbers to categories in order.
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 smaller than another because of the numbers, which can cause wrong results.
Click to reveal answer
beginner
Name a Python library commonly used for encoding categorical variables.
Pandas and scikit-learn are popular. Pandas has get_dummies() for one-hot encoding, and scikit-learn has LabelEncoder and OneHotEncoder.
Click to reveal answer
What does one-hot encoding do?
ACombines categories into one column
BAssigns a unique number to each category
CRemoves categorical variables from data
DCreates new columns for each category with 1 or 0 values
✗ Incorrect
One-hot encoding creates new columns for each category and marks 1 if present, 0 otherwise.
Which encoding method is best for ordered categories?
ALabel encoding
BOne-hot encoding
CRandom encoding
DFrequency encoding
✗ Incorrect
Label encoding assigns numbers in order, which fits ordered categories.
What risk comes from using label encoding on unordered categories?
AData size increases
BModel treats categories as ordered numbers
CCategories get removed
DEncoding fails to run
✗ Incorrect
Label encoding can mislead the model to think categories have order when they don't.
Which Python function creates one-hot encoded columns?
Apandas.get_dummies()
Bnumpy.array()
Csklearn.LabelEncoder()
Dmatplotlib.plot()
✗ Incorrect
pandas.get_dummies() converts categorical columns into one-hot encoded columns.
Why do we encode categorical variables before modeling?
ATo remove missing values
BTo reduce data size
CModels only understand numbers
DTo sort data alphabetically
✗ Incorrect
Models need numbers, so encoding converts categories into numbers.
Explain the difference between one-hot encoding and label encoding.
Think about how each method represents categories as numbers.
You got /4 concepts.
Describe why encoding categorical variables is important in data science.
Consider what computers understand and how data must be prepared.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of encoding categorical variables in data science?
easy
A. To visualize data using charts and graphs
B. To remove missing values from the dataset
C. To convert categories into numbers so algorithms can process them
D. To normalize numerical data between 0 and 1
Solution
Step 1: Understand the role of encoding
Encoding changes categories like 'red', 'blue' into numbers so computers can understand them.
Step 2: Identify the purpose in data science
Machine learning models require numbers, so encoding helps prepare data for these models.
Final Answer:
To convert categories into numbers so algorithms can process them -> Option C
Quick Check:
Encoding = convert categories to numbers [OK]
Hint: Encoding means turning words into numbers for models [OK]
Common Mistakes:
Confusing encoding with data cleaning
Thinking encoding normalizes data
Assuming encoding is for visualization
2. Which of the following is the correct way to apply label encoding using scikit-learn in Python?
easy
A. from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
data['color_encoded'] = le.fit_transform(data['color'])
B. from sklearn.preprocessing import OneHotEncoder
le = OneHotEncoder()
data['color_encoded'] = le.fit_transform(data['color'])
C. import pandas as pd
data['color_encoded'] = pd.get_dummies(data['color'])
D. data['color_encoded'] = data['color'].astype('category').cat.codes
Solution
Step 1: Recognize label encoding syntax
LabelEncoder from sklearn.preprocessing is used with fit_transform on a column.
Step 2: Match code to correct usage
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
data['color_encoded'] = le.fit_transform(data['color']) correctly imports LabelEncoder, creates an instance, and applies fit_transform to the 'color' column.
Final Answer:
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
data['color_encoded'] = le.fit_transform(data['color']) -> Option A
Quick Check:
LabelEncoder usage = from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
data['color_encoded'] = le.fit_transform(data['color']) [OK]
Hint: LabelEncoder uses fit_transform on a single column [OK]
Common Mistakes:
Using OneHotEncoder instead of LabelEncoder
Trying to assign get_dummies output directly to one column
Forgetting to import LabelEncoder
3. Given the following code, what will be the output of print(encoded_df)?
import pandas as pd
from sklearn.preprocessing import OneHotEncoder
data = pd.DataFrame({'fruit': ['apple', 'banana', 'apple', 'orange']})
encoder = OneHotEncoder(sparse=False)
encoded_array = encoder.fit_transform(data[['fruit']])
encoded_df = pd.DataFrame(encoded_array, columns=encoder.categories_[0])
print(encoded_df)
medium
A. An error because OneHotEncoder cannot handle string data
B. A DataFrame with columns 'apple', 'banana', 'orange' containing 1s and 0s indicating fruit presence
C. A DataFrame with a single column containing encoded numbers like 0, 1, 2
D. A DataFrame with original 'fruit' column and encoded columns combined
Solution
Step 1: Understand OneHotEncoder output
OneHotEncoder creates separate columns for each category with 1 or 0 indicating presence.
Step 2: Check code behavior
Encoded array has shape (4,3) for 'apple', 'banana', 'orange'. DataFrame columns are set to these categories.
Final Answer:
A DataFrame with columns 'apple', 'banana', 'orange' containing 1s and 0s indicating fruit presence -> Option B
Quick Check:
OneHotEncoder output = separate 0/1 columns [OK]
Hint: OneHotEncoder creates one column per category with 0/1 [OK]
Common Mistakes:
Expecting a single column with numbers
Thinking OneHotEncoder fails on strings
Assuming original column stays in encoded_df
4. Identify the error in this code snippet for label encoding and how to fix it:
from sklearn.preprocessing import LabelEncoder
data = pd.DataFrame({'color': ['red', 'blue', 'green']})
le = LabelEncoder()
encoded = le.fit_transform(data['color'])
print(encoded)
medium
A. data is a dict, not a DataFrame; convert to DataFrame before encoding
B. LabelEncoder cannot encode colors; use OneHotEncoder instead
C. fit_transform should be called on le, not on data['color']
D. Missing import for pandas; add 'import pandas as pd'
Solution
Step 1: Check imports and dependencies
The code uses pd.DataFrame without importing pandas, causing NameError: name 'pd' is not defined.
Step 2: Fix by adding the import
Add 'import pandas as pd' at the beginning, before defining data.
Final Answer:
Missing import for pandas; add 'import pandas as pd' -> Option D
Quick Check:
Missing pandas import for pd.DataFrame [OK]
Hint: Always import pandas before using pd.DataFrame [OK]
Common Mistakes:
Not importing pandas before using pd.DataFrame
Confusing LabelEncoder with OneHotEncoder
Ignoring data structure requirements
5. You have a dataset with a column 'size' containing categories: 'small', 'medium', 'large', and 'medium'. You want to encode it so that 'small' = 0, 'medium' = 1, and 'large' = 2, but also keep track of the original order. Which encoding method and approach should you use?
hard
A. Use pandas Categorical with ordered=True and then convert to codes
B. Use OneHotEncoder to create separate columns for each size
C. Use LabelEncoder directly without ordering
D. Manually replace categories with numbers using a dictionary without ordering
Solution
Step 1: Understand the need to preserve order
Since 'small' < 'medium' < 'large', encoding must respect this order.
Step 2: Use pandas Categorical with ordered=True
Creating an ordered categorical allows converting categories to codes that reflect the order.
Step 3: Convert ordered categorical to codes
Codes will be 0 for 'small', 1 for 'medium', 2 for 'large' as desired.
Final Answer:
Use pandas Categorical with ordered=True and then convert to codes -> Option A
Quick Check:
Ordered categorical preserves order in encoding [OK]
Hint: Use ordered pandas Categorical to keep category order [OK]
Common Mistakes:
Using LabelEncoder which ignores order
Using OneHotEncoder which loses order info
Replacing categories without defining order
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.