Featurewiz
Most automated feature tools hand you a thousand new columns and, with them, a new problem. Featurewiz is built for the other half of the job: starting from a very wide table, it narrows the column set to a short list that is informative about the target and not redundant with itself.
SULOV, then recursive XGBoost
The library's core is a two-stage filter. The first stage, SULOV — Searching for Uncorrelated List Of Variables — implements the minimum redundancy, maximum relevance idea:
- score every feature's mutual information against the target;
- find all pairs of features whose mutual correlation exceeds a threshold, 0.7 by default;
- within each correlated pair, keep the feature with the higher score and discard the other.
What survives goes to the second stage: repeated XGBoost fits on random subsets of the remaining columns, retaining the features that rank highly on gain across those runs. The output is a ranked, de-duplicated feature list rather than a finished model.
Using it
from featurewiz import FeatureWiz
fw = FeatureWiz(corr_limit=0.7, feature_engg='interactions')
X_selected = fw.fit_transform(X_train, y_train)
It also creates before it prunes: the feature_engg setting adds interaction terms, group-by aggregates and target-encoded categoricals, and the library handles categorical encoding and date parsing along the way. Because the whole pipeline is correlation-driven and tree-based, it suits wide tabular problems of mixed types, where the win comes from throwing most columns away. Fit it inside your cross-validation fold — the target-aware steps leak if they see all the data first.
Featurewiz is an open-source Python library that automates feature selection, with light feature creation, for tabular data. Its SULOV algorithm applies the minimum-redundancy, maximum-relevance principle — ranking features by mutual information with the target, then dropping the weaker member of every highly correlated pair — and passes the survivors to recursive XGBoost ranking. It earns its place when a table is too wide to model directly and most of its columns duplicate one another.
Imagine a questionnaire with four hundred questions, where half of them are really asking the same thing twice over. Filling it in is slow, and the duplicates add nothing to what you learn.
Featurewiz is a free tool that trims that questionnaire. Given a big table of data, it works out which columns actually tell you something about the thing you want to predict, spots the ones that merely echo each other, and keeps only the most useful from each group. What you are left with is a much smaller set of columns that trains faster and predicts about as well — often better, because the clutter is gone.