Common Implementation Patterns
This section is only an implementation guide. The definitive specification of the LearnAPI is given in Reference.
This guide is intended to be consulted after reading Anatomy of an Implementation, which introduces the main interface objects and terminology.
Although an implementation is defined purely by the methods and traits it implements, many implementations fall into one (or more) of the following informally understood patterns or "tasks":
Regression: Supervised learners for continuous targets
Classification: Supervised learners for categorical targets
Clusterering: Algorithms that group data into clusters for classification and possibly dimension reduction. May be true learners (generalize to new data) or static.
Gradient Descent: Including neural networks.
Incremental Algorithms: Algorithms that can be updated with new observations.
Feature Engineering: Algorithms for selecting or combining features
Dimension Reduction: Transformers that learn to reduce feature space dimension
Missing Value Imputation
Transformers: Other transformers, such as standardizers, and categorical encoders.
Static Algorithms: Algorithms that do not learn, in the sense they must be re-executed for each new data set (do not generalize), but which have hyperparameters and/or deliver ancillary information about the computation.
Ensembling: Algorithms that blend predictions of multiple algorithms
Time Series Forecasting
Time Series Classification
Survival Analysis
Density Estimation: Algorithms that learn a probability distribution
Bayesian Algorithms
Outlier Detection: Supervised, unsupervised, or semi-supervised learners for anomaly detection.
Text Analysis
Audio Analysis
Natural Language Processing
Image Processing