mrmr-selection
minimum-Redundancy-Maximum-Relevance algorithm for feature selection
What it is and what it does
mrmr_selection implements a minimal-optimal feature selection algorithm designed to find the smallest subset of features that retain predictive power for a machine learning task. Unlike all-relevant methods that identify every feature with some relationship to the target, mRMR prioritizes efficiency by selecting only the most informative features while minimizing redundancy among them.
The package provides separate modules for Pandas, Polars, Spark, and BigQuery, each exposing mrmr_classif (for categorical targets) and mrmr_regression (for numeric targets) functions. It depends on pandas, numpy, scipy, joblib, category-encoders, jinja2, tqdm, and polars. The algorithm returns a ranked list of the top K selected features, allowing further filtering if needed.
Use it for:
- Reduce dataset dimensionality in production ML pipelines where frequent, automated feature selection is needed without manual tuning.
- Identify the most predictive features in high-dimensional datasets to lower memory and computation costs in model training and inference.
- Improve model interpretability by selecting a minimal set of features that explain predictions while maintaining accuracy.
- Perform feature selection on large-scale data stored in Spark or BigQuery without loading entire datasets into memory.
- Benchmark feature importance across classification and regression tasks to guide domain expert review of model inputs.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Implements the mRMR (minimum Redundancy - Maximum Relevance) feature selection algorithm to identify the smallest subset of relevant features for classification and regression tasks across Pandas, Polars, Spark, and BigQuery.
Yes, if you need minimal-optimal feature selection and accept dormant maintenance. The algorithm is well-established and used in production systems, dependencies are stable, and no known vulnerabilities exist. Install friction is low. However, the last release was 2023-06-30 with no recent commits, so expect no active support for new dependency versions or bug fixes. GPL v3.0 licensing is a hard constraint for proprietary projects. Best suited for open-source or internal ML workflows where feature selection is a one-time or infrequent task.
Install
mrmr-selection on PyPI
pip
pip install mrmr-selectionuv
uv add mrmr-selectionpoetry
poetry add mrmr-selectionInstalling mrmr-selection
Before you install
Low install friction with a pure Python wheel and common data science dependencies. Maintenance is dormant—last release was 2023-06-30 and no commits since 2024-11-19—so expect no active bug fixes or updates, though the core algorithm is stable.
License in practice
Licensed under GNU General Public License v3.0, which requires derivative works and distributions to also be open-source under GPL v3.0. This is a strong copyleft license; proprietary or closed-source projects may face legal constraints.
Quickstart
pip install mrmr_selection
import pandas as pd
from mrmr import mrmr_classif
X = pd.DataFrame([[1, 2], [3, 4]])
y = pd.Series([0, 1])
selected_features = mrmr_classif(X=X, y=y, K=1)
Verify before relying
- Whether the package actively maintains compatibility with recent versions of its dependencies (pandas, numpy, scipy, etc.)
- Current status of Spark and BigQuery module support and any known limitations
- Whether Python version support is documented elsewhere (requires_python is empty in metadata)
- Performance characteristics and scalability limits on large datasets
Package facts
| License | GNU General Public License v3.0 (unclear) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — category-encoders, jinja2, tqdm, joblib, pandas, numpy, scikit-learn, scipy, polars |
| Maintenance | dormant — 1,141 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 73,500/month — #14,988 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mrmr_selection-0.2.8-py3-none-any.whl
Tags
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to…
permissive · top 100 on PyPI
huggingface-hubClient library and CLI tool for downloading,…
permissive · top 100 on PyPI
langchainLangChain provides a framework for building…
permissive · top 1,000 on PyPI
hf-xethf-xet provides chunk-based deduplication and…
permissive · top 1,000 on PyPI
tokenizersTokenizers converts raw text into token…
permissive · top 1,000 on PyPI
transformersTransformers provides a unified framework for…
permissive · top 1,000 on PyPI
BorutaBoruta performs all-relevant feature selection…
permissive · top 15,000 on PyPI
repartipyRepartiPy calculates optimal partition counts…
permissive · top 15,000 on PyPI
percentifyPercentify provides one-call exploratory…
permissive · top 15,000 on PyPI
rank-bm25Implements BM25 ranking algorithms (Okapi BM25,…
permissive · top 5,000 on PyPI
polars-dsPolars-ds adds data science and machine…
permissive · top 15,000 on PyPI
feature-engineFeature-engine provides transformers for…
permissive · top 15,000 on PyPI
sagemaker-feature-store-pyspark-3.1Connects Apache Spark DataFrames to Amazon…
permissive · top 15,000 on PyPI
k-means-constrainedK-means clustering with enforced minimum and…
permissive · top 15,000 on PyPI
lttbDownsamples time series data using the…
permissive · top 15,000 on PyPI
azureml-train-automlAutomatically discovers and trains the best…
unclear · top 15,000 on PyPI