featureranker
Ensemble feature ranking for any numeric feature matrix: tabular datasets, transformer embeddings, pooled hidden states, engineered features. Five methods rank every feature, a typed result object holds the evidence, and weighted rank voting produces one consensus ordering, for classification and regression. Unnamed matrices work directly: pass a numpy array and features get stable generated IDs.
Featured in:
- Machine learning classifiers predict key genomic and evolutionary traits across the kingdoms of life (Nature Scientific Reports, 2023)
- cdsBERT - Extending Protein Language Models with Codon Awareness (bioRxiv, 2023)
Installation
pip install featureranker
Requires Python >= 3.11.
Quick start
from sklearn.datasets import load_breast_cancer
from featureranker import feature_ranking, voting, plot_rankings, plot_after_vote
cancer = load_breast_cancer(as_frame=True)
result = feature_ranking(cancer.data, cancer.target, task="classification")
vote_table = voting(result) # ["feature", "score"], best first
plot_rankings(result, top_n=15) # per-method ranks as a dot plot
plot_after_vote(vote_table, top_n=15) # consensus scores
feature_ranking returns a RankingResult with per-method ranking tables,
rank and score matrices, diagnostics, and save/load. Results are
deterministic for a given random_state at any n_jobs.
Hugging Face datasets
Pass a Hub path, name the label column, list what to exclude; the rest
become features. Categorical columns one-hot expand into named sub-features
(sex-Female, workclass-Private) by default.
from featureranker import feature_ranking, get_hf_data
X, y = get_hf_data(
"scikit-learn/adult-census-income",
target="income",
columns_to_drop=["fnlwgt"],
)
result = feature_ranking(X, y, task="classification")
One score from the best features
fit_convex finds the optimal convex combination of the top consensus
features: weights >= 0 that sum to one, so each weight is that feature's
share of a single interpretable scoring function.
fit = result.fit_convex(X, y, top_n=10)
fit.table() # ["feature", "weight"], largest first
scores = fit.predict(X) # rank rows by the combined score
Ranking methods
| Key | Method | Score |
|---|---|---|
rf |
Random forest | Impurity importance from a halving-search-tuned forest |
xg |
XGBoost | Gain importance from a halving-search-tuned booster |
mi |
Mutual information | kNN-estimated dependency with the target |
f_test |
ANOVA F-test | Between/within variance ratio |
l1 |
L1 regularization path | Entry point on the lasso / L1 logistic path |
Examples and the selection-vs-reduction study
20 datasets (transformer embeddings, classical NLP feature spaces, pixels, molecules, sensors) each run the same ablation: every ranking method and the ensemble vote as selectors against PCA, ICA, random projection, kernel PCA, Isomap, UMAP, and t-SNE at matched budgets, scored by linear, kNN, and SVM probes. Findings: the research report. Per-dataset pages live in docs/examples/, regenerated by the scripts in examples/; the ModernBERT sentiment deep dive walks the methodology on unnamed transformer dimensions.
Documentation
| Topic | Page |
|---|---|
| Install and first run | docs/quickstart.md |
| The math behind each method and the voting schemes | docs/algorithms.md |
| Speed, the n_jobs core budget, determinism | docs/performance.md |
| Every signature and exception | docs/api.md |
| Upgrading from v2 | docs/migration_v2_to_v3.md |
| Development and releases | docs/contributing.md |
The example notebook walks through classification and regression end to end.
Development
git clone https://github.com/lhallee/featureranker.git
cd featureranker
pip install -e ".[dev]"
pytest
Citation
@article{Hallee2023,
title = {Machine learning classifiers predict key genomic and evolutionary traits across the kingdoms of life},
volume = {13},
ISSN = {2045-2322},
url = {http://dx.doi.org/10.1038/s41598-023-28965-7},
DOI = {10.1038/s41598-023-28965-7},
number = {1},
journal = {Scientific Reports},
publisher = {Springer Science and Business Media LLC},
author = {Hallee, Logan and Khomtchouk, Bohdan B.},
year = {2023},
month = feb
}
@article{Hallee2023cds,
title = {cdsBERT - Extending Protein Language Models with Codon Awareness},
url = {http://dx.doi.org/10.1101/2023.09.15.558027},
DOI = {10.1101/2023.09.15.558027},
publisher = {Cold Spring Harbor Laboratory},
author = {Hallee, Logan and Rafailidis, Nikolaos and Gleghorn, Jason P.},
year = {2023},
month = sep
}
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file featureranker-3.0.1.tar.gz.
File metadata
- Download URL: featureranker-3.0.1.tar.gz
- Upload date:
- Size: 6.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51074f0d85bec9f3c10375faff38a4fd601390bcdceeadb357ca48365d5817e0
|
|
| MD5 |
6cbf493239896859bcd4876863195a9a
|
|
| BLAKE2b-256 |
fea9044fb153e2c74c1623bd434af4d07635bc2df6f2ec2ea97edf74295ab97d
|
File details
Details for the file featureranker-3.0.1-py3-none-any.whl.
File metadata
- Download URL: featureranker-3.0.1-py3-none-any.whl
- Upload date:
- Size: 32.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7af5d75e730a3c76644df36bef4587a3134e86f6d205357b2e0497510b6bd6df
|
|
| MD5 |
b0315178a3d7a763276af915b879076d
|
|
| BLAKE2b-256 |
143a16b1426287566f1ee24aef83ca7c450e5b9b4c237e7bed25d904a2048459
|