Machine Learning Β· Chapter 22 of 40

Encoding Categorical Data

Models need numbers. Convert categories with ONE-HOT ENCODING (each category becomes a 0/1 column) or ORDINAL ENCODING (assign integers).

Use ordinal only when categories have a natural order.

Example 1 (python)
import pandas as pd
df = pd.DataFrame({'color': ['red','green','red']})
print(pd.get_dummies(df))
Output
  color_green  color_red
0            0          1
1            1          0
2            0          1

One-hot encoding.

Example 2 (python)
from sklearn.preprocessing import OrdinalEncoder
OrdinalEncoder().fit_transform(df)

Only when there's real order.

Key points

  • One-hot: N columns of 0/1.
  • Ordinal: assign integers.
  • Ordinal implies order.
  • Use one-hot for nominal categories.
πŸ’‘ Note: For very high-cardinality columns (like city with 10,000 values), consider TARGET ENCODING or embeddings.

πŸ“ Quick Quiz

1. One-hot encoding creates:

2. Ordinal encoding is good when:

3. For very high-cardinality features: