Machine learning involves algorithms that improve their performance on a task based on experience. It is used when human expertise does not exist, cannot be explained, must be customized for large amounts of data. Examples of tasks well-suited for machine learning include pattern recognition, generation, anomaly detection, and prediction. Machine learning can be supervised (classification, regression), unsupervised (clustering), reinforcement, or inverse reinforcement learning. Designing a learning system involves choosing the training experience, target function, representation, and learning algorithm. Evaluation metrics depend on the problem and domain.