Label encoding
- Machine Learning course
- Beginner
- Lesson 22/112
- 5 min
Categorical data is converted to numeric values with LabelEncoder.
LabelEncoder
Models work with numbers; text labels must be encoded as integers. LabelEncoder gives each distinct value 0, 1, 2... in alphabetical order:
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y = le.fit_transform(["kedi", "köpek", "kedi", "kuş"])
print(y) # [0 1 0 2]
print(le.classes_) # ['kedi' 'köpek' 'kuş']
print(le.inverse_transform([2])) # ['kuş']LabelEncoder is meant for labels (y).
One-hot encoding
Unordered categorical features are expanded into a separate 0/1 column for each value:
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
X = enc.fit_transform([["kırmızı"], ["mavi"], ["kırmızı"]]).toarray()
print(X) # [[1. 0.] [0. 1.] [1. 0.]]
print(enc.categories_)In pandas, pd.get_dummies(df, columns=["renk"]) does the same. For ordered categories (small < medium < large) OrdinalEncoder is suitable.
Practice Encode the labels
Encode the renk list with LabelEncoder and print the result. Then print the length of classes_.
Starter code
from sklearn.preprocessing import LabelEncoder
renk = ["yeşil", "mavi", "yeşil", "sarı", "mavi"]
# buraya yazSample solution
from sklearn.preprocessing import LabelEncoder
renk = ["yeşil", "mavi", "yeşil", "sarı", "mavi"]
le = LabelEncoder()
print(le.fit_transform(renk))
print(len(le.classes_))Expected output
[2 0 2 1 0] 3
Questions and answers
Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.
1 Why can applying LabelEncoder to a feature column (X) be a problem?
- It isn't a problem
- The numbers imply a false order (0 < 1 < 2) Correct answer
- It is very slow
- It doesn't accept text
Explanation: Linear models treat "kuş" (2) as greater than "kedi" (0); one-hot is used for unordered categories.
2 Turn the encoded numbers back into text.
adlar = le.____([0, 2])
adlar = le.inverse_transform([0, 2])
Explanation: inverse_transform turns the model's predictions into readable labels.
3 Match the encoders.
| Term | Meaning |
|---|---|
LabelEncoder |
Labels to integers |
OneHotEncoder |
A 0/1 column per value |
OrdinalEncoder |
Ordered categories |
get_dummies |
One-hot with pandas |