Prune highly correlated features

Paste rows of numbers, pick a correlation method and threshold, and drop one column from every pair that is too correlated — reducing multicollinearity before you model. Nothing is uploaded.

Try:
Pruning report

About this tool

Correlated Feature Pruner reduces multicollinearity in a numeric dataset by dropping redundant columns. It computes the pairwise correlation between your columns (each column is a feature, each row an observation) and greedily removes one column from every pair whose absolute correlation is stronger than the threshold you set. The first-seen column of each correlated group is kept, so the result is deterministic. Everything runs locally in your browser — nothing is uploaded.

This is the same "keep the first, drop the later" recipe used by common pandas / feature-engine multicollinearity filters, done in one paste. Highly collinear features carry the same information, inflate variance in linear models, and make coefficients unstable — pruning them before modeling keeps your feature set lean and interpretable.

Worked example

Input (with a header row):

age,income,savings
20,100,5
30,200,9
40,300,2
50,400,7

Here income moves in lockstep with age (|r| = 1.00), while savings is essentially uncorrelated. With the default threshold |r| > 0.90 and Pearson correlation:

Kept 2 of 3 columns (threshold |r| > 0.90, pearson).

Kept (2): age, savings
Dropped (1):
  income (|r|=1.00 with age)

Pruned data:
age,savings
20,5
30,9
40,2
50,7

Each dropped column reports the correlation value and the kept column it was redundant with, and the pruned dataset is emitted as CSV of the kept columns.

Options

Limits

FAQ

How does it decide which column of a correlated pair to drop?

It walks the columns left to right and keeps a column unless it is too correlated with a column already kept — in which case that later column is dropped. So the first-seen column of each correlated group survives. This makes the result deterministic; reorder your columns if you want a different one to be kept.

What's the difference between Pearson, Spearman, and Kendall?

Pearson measures linear correlation on the raw values. Spearman correlates the ranks, so it catches monotonic relationships even when they are nonlinear (e.g. y = x³). Kendall is a rank concordance measure (tie-corrected tau-b), often preferred for small samples or many ties. Switch methods if a linear correlation misses a redundancy you can see.

Does a negative correlation count?

Yes. The threshold is applied to the absolute value, so a strong negative correlation (e.g. r = -0.98) is just as redundant as a strong positive one and will trigger a drop. The reported value keeps its sign so you can see the direction.

Is my data uploaded anywhere?

No. The tool is compiled to WebAssembly and runs entirely in your browser. Your numbers never leave your device, so it is safe to paste private or unpublished datasets.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool correlated-feature-pruner "20,100,5
30,200,9
40,300,2
50,400,7"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/correlated-feature-pruner/?data=20%2C100%2C5%0A30%2C200%2C9%0A40%2C300%2C2%0A50%2C400%2C7&threshold=0.9&method=pearson&labels=age%2Cincome%2Csavings&header=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.