Machine learning is the art of creating software programs that learn from data. More formally, it can be defined as the practice of building adaptive programs that use tunable parameters to improve predictive performance. It is a sub-field of artificial intelligence.
We can separate machine learning programs based on the type of problems they are trying to solve. These problems are appropriately called learning problems. The two categories of these problems, broadly speaking, are referred to as supervised and unsupervised learning problems. Furthermore, there are some hybrid problems that have aspects that involve both categories—supervised and unsupervised.
The input to a learning problem consists of a dataset of n rows. Each row represents a sample and may involve one or more fields referred to as attributes or features. A dataset can...