Machine learning (ML) is a type of artificial intelligence that allows software to become more accurate at predicting outcomes without being explicitly programmed. ML uses historical data as input to predict new output values. Common uses of ML include recommendation engines, fraud detection, and predictive maintenance. There are four main types of ML: supervised learning where the input and output are defined, unsupervised learning which looks for patterns in unlabeled data, semi-supervised which uses some labeled and some unlabeled data, and reinforcement learning which programs an algorithm to seek rewards and avoid punishments to accomplish a goal.