A type of machine learning algorithm in which both input and actual output data are provided, and both are labelled as such for classification purposes. The model is then trained to ensure the predicted output is close to the actual output, in order to make similarly trained predictions on unseen data going forward.