Sitemap

Feature Engineering: Converting Numerical Data into Categorical Data

3 min readAug 30, 2025

--

four key techniques to convert numerical features into categorical data:

  1. Binning & Binarization
  2. Discretization
  3. Quantile Binning
  4. 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 1

Key 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,1000000

Key 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-1000000

Key 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, 100000

Key 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

Press enter or click to view image in full size

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.

--

--