← all repositories
EpistasisLab/tpot

AutoML that breeds scikit-learn pipelines by evolution

TPOT automates machine-learning pipeline design by treating scikit-learn workflows as populations to be bred via genetic programming.

10k stars Jupyter Notebook ML Frameworks
tpot
Not currently ranked — collecting fresh signals.
star history

What it does

TPOT is a Python AutoML tool that treats scikit-learn pipelines as evolving organisms. You give it a dataset and a fitness metric; it explores candidate pipelines—handling preprocessing, feature selection, model choice, and hyperparameters—and keeps the winners. The goal is to remove the manual grunt work of pipeline tuning while staying inside the scikit-learn ecosystem.

The interesting bit

Rather than flattening pipeline search into a giant grid, TPOT models pipelines as graphs and mutates their structure directly. The recent ground-up rewrite (previously dubbed TPOT2) introduced multi-objective optimization and a modular evolutionary framework, meaning you can customize the genetic algorithm itself, not just the operators it searches over.

Key highlights

  • Evolves complete scikit-learn pipelines end-to-end, including preprocessing and feature selection.
  • Graph-based representation allows structural mutations—swapping nodes, not just tweaking knobs.
  • Modular framework lets you customize the evolutionary algorithm’s behavior.
  • Parallel execution via Dask, though the README insists you wrap script logic in if __name__ == "__main__" to avoid multiprocessing chaos.
  • Optional preprocessing = True will impute missing values and encode categoricals automatically.

Caveats

  • TPOT does not validate that your data matches your operators; pass a dataframe with categoricals and you must either enable preprocessing or supply compatible steps.
  • The built-in preprocessing is currently fit on the entire training set before cross-validation splits, which can leak information; per-fold preprocessing is noted as future work.
  • sklearnex acceleration extensions are explicitly flagged as untested or unstable on Arm-based CPUs such as Apple Silicon.

Verdict

Best for practitioners who want to automate scikit-learn pipeline discovery and can spare the CPU cycles for evolutionary search. Look elsewhere if you need deterministic tuning or tight control over every preprocessing step.

Frequently asked

What is EpistasisLab/tpot?
TPOT automates machine-learning pipeline design by treating scikit-learn workflows as populations to be bred via genetic programming.
Is tpot open source?
Yes — EpistasisLab/tpot is open source, released under the LGPL-3.0 license.
What language is tpot written in?
EpistasisLab/tpot is primarily written in Jupyter Notebook.
How popular is tpot?
EpistasisLab/tpot has 10k stars on GitHub.
Where can I find tpot?
EpistasisLab/tpot is on GitHub at https://github.com/EpistasisLab/tpot.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.