TPOT
Most AutoML tools hand you a trained model. TPOT hands you a Python file. It searches for an entire scikit-learn pipeline — preprocessing, feature selection, estimator and hyperparameters — using genetic programming, then exports the winner as readable code you own.
How the search works
TPOT, the Tree-based Pipeline Optimization Tool from the Epistasis Lab at the University of Pennsylvania, represents each pipeline as a tree of operators and evolves a population of them:
- mutation swaps an operator or nudges a hyperparameter;
- crossover splices two promising pipelines together;
- candidates are scored by cross-validated performance, with pipeline complexity as a second objective so bloated trees lose to simpler equals;
- generations and population_size decide how far the search runs.
Using it
TPOTClassifier and TPOTRegressor follow the scikit-learn interface — fit, predict, score — and export() writes the discovered pipeline out as a standalone script. That export is the distinguishing feature: the result is inspectable, reviewable and editable, rather than a binary artefact you have to take on trust.
What it costs
Evolutionary search is expensive, because every candidate is cross-validated in full, and max_time_mins exists precisely to bound it — default settings will run for hours on a modest table. TPOT is a poor fit for very large datasets and a strong fit when you want a defensible, human-readable pipeline for a mid-sized problem.
TPOT is an open-source AutoML library that uses genetic programming to search for complete scikit-learn pipelines — preprocessing, feature selection, estimator and hyperparameters — scoring candidates by cross-validated performance and penalising needless complexity. Its distinguishing feature is the export: the winning pipeline is written out as readable Python you can inspect and edit. The price is compute, since evolutionary search cross-validates every candidate it breeds.
Breeding dogs is a slow way to get a sheepdog, but it works: keep the best ones, mix them, repeat. TPOT does that with machine-learning recipes.
It builds hundreds of different ways of cleaning your data and making predictions, keeps whichever perform best, mixes and tweaks them, and repeats for round after round. What makes it unusual is the ending. Instead of simply handing back a finished model, it writes out the winning recipe as plain Python code — something you can read, show a colleague, and change yourself. The downside is patience: all that breeding takes real computing time, so TPOT suits modest datasets rather than enormous ones.