Machine learning allows software to become more accurate at predicting outcomes without being explicitly programmed. It uses historical data as input to predict new output values. Machine learning is important because it gives enterprises insights into customer behavior and operations trends, and supports new product development. The main types of machine learning are supervised learning, unsupervised learning, semi-supervised learning and reinforcement learning, and the appropriate algorithm depends on the type of data being predicted.