Machine Learning is composed of two words Machine and Learning.
By the word Machine we generally mean a computer though it would be more appropriate to think in terms of a Computer Program.
What do we mean by Learning?
Learning can be defined as a process of gaining knowledge. For instance, we learn the alphabet, learn the mathematical tables as well. But then, in the beginning is simply memorization. Later on we actually begin to understand the meaning of the multiplication table. We can then multiply numbers and get the values even if we do not actually remember. This understanding of the processes is what we mean by the term learning.
Computer Programming of Business Applications is usually done through a set of rules. We have different set of actions for different combination of parameters. For example we would call for more supplies if the stock of an item in a shop goes below a certain quantity(say 10). This is a rule that has been implemented in the Business Software.
But why 10?
Well, the the people running the business learned from their experience that 10 is the figure at which new supplies need to be ordered. How did they learn this?
By observing sales patterns, and taking into account the time required for procurement of new items. Things change, and we can expect changes in this trigger figure of 10 in the future.
Now, think about this idea of keeping minimum balance triggers when you’re dealing in hundreds, or maybe thousands of products. You also have multiple sales depots and many supply depots as well. Clearly, we have a very complex situation on our hands.
We would need to keep a lot of people keeping an eye on the situation and updating the software as and when required.
What if the software were to become capable of learning on its own. It could keep an eye on the developing situations and change its minimum triggers accordingly.
Put in very simple terms. A Machine Learning System would take as input historical data and attempt to predict the future.
Types of Machine Learning
Unsupervised learning is used for data that doesn’t contain descriptions. It can also be defined as having input data but no output variables. Its the job of the software to discover any structure or organization present in the data. In particular, we attempt to discover inherent clustering or associations. This type of data is called Unlabeled data.
Main algorithms for Unsupervised learning is:
1. K-Means Clustering.
2. Apriori Algorithm
3. Hierarchical Clustering.
Example problems: Detecting frauds, studying online behavior etc
This type of learning works with Labeled data. This type of data comes with descriptions and the main task is mapping inputs to outputs.
Main algorithms for supervised learning are:
1. Linear Regression
2. Logistic Regression
3. Decision Tree
4. Naive Bayes
Main problems solved are recognition problems(face, speech etc).
Problems where some data is labeled and other is unlabeled. Reinforcement learning where learning is strengthened.
Examples would be discovering structures in pictures where certain parts are labeled and others unlabeled. Self driving cars are another application.