Skip to content

Latest commit

History

67 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MetaFS

PythonLicense: MITHugging Face Spaces


💡 Overview

Choosing the right feature selection algorithm for a given dataset is a non-trivial task that typically requires extensive experimentation. MetaFS addresses this by framing algorithm selection as a meta-learning problem: given a new dataset, a set of meta-features is extracted and used to predict the performance of eight feature selection algorithms across five evaluation criteria. MetaFS is available as a web application on Hugging Face Spaces. Upload your dataset, select the target column, adjust the composite criterion weights, and get algorithm rankings in seconds.


🧠 Methodology

Meta-learners are Ridge regression models trained on a metadataset of 40 benchmark classification datasets under a Leave-One-Dataset-Out (LODO) evaluation protocol. Predictions are generated instantly at inference time, providing ranked recommendations without running any feature selection method on the target dataset.


🔬 Algorithms

The following feature selection methods are evaluated and ranked by MetaFS:

AlgorithmPackageReference
ANOVA F-valuescikit-learnSelectKBest(f_classif)
BorutaborutaBorutaPy
CCEApycceaCCEA
Chi-Squarescikit-learnSelectKBest(chi2)
Genetic Algorithmdeapalgorithms.eaSimple
MRMRmrmr-selectionmrmr_classif
Mutual Informationscikit-learnSelectKBest(mutual_info_classif)
PCAscikit-learnPCA

📊 Evaluation Criteria

CriterionDirectionDescription
Balanced Accuracy↑ Higher is betterAverage per-class accuracy after feature selection, robust to class imbalance.
F1 Score↑ Higher is betterHarmonic mean of precision and recall after feature selection.
Compression Ratio↑ Higher is betterFraction of features removed; 1 means all features discarded.
Feature Selection Time↓ Lower is betterWall-clock time (seconds) to run the feature selection algorithm.
Composite↑ Higher is betterUser-weighted average of Balanced Accuracy and Compression Ratio.

⚙️ Meta-features

MetaFS extracts the following 10 dataset meta-features to characterize each new dataset:

Meta-featureDescription
ImbalanceRatioRatio between the largest and smallest class counts.
MaxFeatureClassSpearmanMaximum absolute Spearman correlation between any feature and the target.
MF_DimensionalityRatio of features to samples.
MF_MaxNumericMutualInformationMaximum mutual information between any feature and the target.
MF_MaxCardinalityOfNumericFeaturesMaximum number of unique values across all numeric features.
MF_StdevNumericMutualInformationStandard deviation of mutual information scores across features.
MF_Quartile1ClassProbabilityFirst quartile of the class probability distribution.
MF_MinClassProbabilityMinimum class probability.
MF_MaxNumericJointEntropyMaximum joint entropy between any feature and the target.
MF_KurtosisClassProbabilityKurtosis of the class probability distribution (Fisher's excess).

📜 Citation

If you use MetaFS in your research, please cite:

@misc{MetaFS,
author = {Venâncio, Pedro},
title = {{MetaFS}: A meta-learning approach to feature selection algorithm recommendation for binary classification tasks},
year = {2026},
publisher = {GitHub},
url = {https://github.com/pedbrgs/MetaFS}
}

📫 Contact

Please send any bug reports, questions or suggestions directly in the repository.

About

A meta-learning approach for recommending feature selection algorithms in binary classification tasks.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages