ntucllab/libact
Pool-based active learning in Python
What it solves
libact is a Python package that simplifies the implementation of pool-based active learning. It helps users reduce the amount of labeled data needed to train a model by intelligently selecting the most informative samples from a pool of unlabeled data for labeling.
How it works
The library provides a unified interface for implementing query strategies, models, and labelers. It implements several popular active learning strategies categorized by their approach:
- Exploitation/Uncertainty: Selects samples where the model is least confident (e.g.,
UncertaintySampling). - Diversity/Representativeness: Selects samples that are farthest from the labeled set or representative of the data distribution (e.g.,
CoreSet,InformationDensity). - Disagreement: Uses a committee of models to find samples where they disagree most (e.g.,
QueryByCommittee,BALD). - Meta-Algorithm: The
ActiveLearningByLearning(ALBL) algorithm acts as a multi-armed bandit to automatically select the best query strategy on the fly.
Who it’s for
Data scientists and ML practitioners who want to integrate active learning into their projects to optimize labeling costs and improve model performance with fewer labels.
Highlights
- Diverse Strategy Library: Includes a wide range of strategies including uncertainty, diversity, and epistemic uncertainty (BALD).
- Meta-Learning: Features the ALBL meta-algorithm for automatic strategy selection.
- Extensible Interface: Provides a unified interface and adapters (like
SklearnAdapter) to wrap any scikit-learn estimator. - C-Extensions: Includes high-performance modules for variance reduction and HintSVM.
Related
- Project
- Project
- Project
- Project
- Project