Machine learning algorithms are organized into a taxonomy, based on the desired outcome of the algorithm. Common algorithm types include:
- Supervised learning — in which the algorithm generates a function that maps inputs to desired outputs. One standard formulation of the supervised learning task is the classification problem: the learner is required to learn (to approximate) the behavior of a function which maps a vector into one of several classes by looking at several input-output examples of the function.
- Unsupervised learning — An agent which models a set of inputs: labeled examples are not available.
- Semi-supervised learning — which combines both labeled and unlabeled examples to generate an appropriate function or classifier.
- Reinforcement learning — in which the algorithm learns a policy of how to act given an observation of the world. Every action has some impact in the environment, and the environment provides feedback that guides the learning algorithm.
- Transduction — similar to supervised learning, but does not explicitly construct a function: instead, tries to predict new outputs based on training inputs, training outputs, and test inputs which are available while training.
- Learning to learn — in which the algorithm learns its own inductive bias based on previous experience.
The computational analysis of machine learning algorithms and their performance is a branch of theoretical computer science known as computational learning theory.