Feature Engineering: Converting Numerical Data into Categorical Data
four key techniques to convert numerical features into categorical data:
- Binning & Binarization
- Discretization
- Quantile Binning
- KMeans Binning
1. Binning & Binarization
Definition:
- Binning groups continuous numerical values into discrete intervals or “bins.”
- Binarization converts numerical data into binary (0/1) values based on a threshold.
Example: Converting exam scores into pass/fail categories.
import pandas as pd
# Sample exam scores
scores = [55, 72, 48, 91, 67, 82]
df = pd.DataFrame({'score': scores})
# Binarization: pass if score >= 60
df['pass'] = (df['score'] >= 60).astype(int)
print(df)Diagram:
Score: 48 55 67 72 82 91
Pass: 0 0 1 1 1 1Key Points:
- Good for threshold-based feature creation
- Useful when model needs binary inputs
Use Case: Converting exam scores into pass/fail categories.
Visual: Bar chart showing scores mapped to 0 (fail) and 1 (pass).
2. Discretization (Equal-Width Binning)
Definition:
Discretization transforms continuous numerical values into intervals of equal width.
Example: Divide app downloads (0–1000000) into 5 bins of equal width.
downloads = [100, 1500, 2500, 4000, 10000, 25000, 50000, 100000, 500000, 1000000]
df = pd.DataFrame({'downloads': downloads})
# Equal-width binning
df['equal_width_bin'] = pd.cut(df['downloads'], bins=5)
print(df)Diagram:
Bins: 0-200k | 200k-400k | 400k-600k | 600k-800k | 800k-1M
Downloads: 100,1500,...500000,1000000Key Points:
- Simple to implement
- Bin widths are equal, but number of data points per bin may vary
Use Case: Grouping app downloads into fixed ranges (0–200k, 200k–400k, etc.) for easier analysis.
Visual: Histogram showing bins of equal width with frequency counts.
3. Quantile Binning (Equal-Frequency Binning)
Definition:
Quantile binning divides data into bins with approximately equal numbers of observations, even if bin widths vary.
Get Pravin More’s stories in your inbox
Join Medium for free to get updates from this writer.
Example: Split app downloads into 4 bins with equal frequency.
df['quantile_bin'] = pd.qcut(df['downloads'], q=4)
print(df)Diagram:
Bin 1: 100-4000
Bin 2: 4000-50000
Bin 3: 50000-100000
Bin 4: 100000-1000000Key Points:
- Ensures balanced bins in terms of data points
- Useful for skewed data
Use Case: Handling skewed datasets like app downloads to ensure each bin has roughly equal data points.
Visual: Countplot showing equal-frequency bins, each containing a similar number of observations.
4. KMeans Binning
Definition:
KMeans binning uses clustering to group numerical values into bins based on similarity rather than range or frequency.
Example: Grouping salaries into 3 bins using KMeans.
from sklearn.cluster import KMeans
import numpy as np
salaries = np.array([30000, 45000, 50000, 60000, 75000, 100000]).reshape(-1,1)
kmeans = KMeans(n_clusters=3, random_state=0).fit(salaries)
labels = kmeans.labels_
print(labels)Diagram:
Cluster 0: 30000, 45000
Cluster 1: 50000, 60000
Cluster 2: 75000, 100000Key Points:
- Adaptive binning based on data distribution
- Handles non-linear patterns well
Use Case: Grouping salaries into clusters based on similarity rather than range.
Visual: Scatter plot with salary values colored by KMeans cluster labels.
Summary Table
Key
- Binning & Binarization are useful for threshold-based simplification
- Discretization is intuitive but may create uneven data distribution
- Quantile Binning balances the number of points per bin
- KMeans Binning adapts to data distribution using clustering
Mastering these four techniques will make your feature engineering much more robust, especially when working with skewed or large datasets.







