In our daily life we make decisions we remember things and based on our past experiences we make many decisions. Similar to humans the technique enables machines to learn, make decisions based on past experiences called Machine Learning. Machine Learning is a subset of AI (Artificial Intelligence) which enables studying algorithms and techniques make machines to learn and think.
AI is vast and many years has been spent in some areas of AI where some algorithms had been defined and which worked well. Think of Google's page ranking technique, Amazon's product recommendations, YouTube's advertisements all works on your search history, interest, product rating etc which enables user to find more relative content and seller to increase it's revenue.
Basically data provided to Machine Learning algorithm is training data and test data, training data is used to train algorithm so it can make predictions/decisions accordingly and test data is required for testing purpose.
Use of Machine Learning
Machine Learning can be used in many domains but there are some areas where machine learning is being used extensively:
- Finance - From stock to banking Machine learning is used for market prediction, fraud detection, insights etc.
- Healthcare - Very interesting seeing Machine Learning algorithms are used to learn patterns for a patient's health, patterns in life threatening conditions like cancer, tumors etc.
- Marketing - Heavily used in marketing and sales, insights, recommendations, advertisements etc.
- Transportation - Used for showing accurate routes, route patterns, product delivery etc.
- Security - Useful in government agencies, banks for public safety, fraud detection, personal security etc.
Advantage of Machine Learning
We have seen in previous section uses of Machine Learning but there are some advantages of Machine Learning over traditional type coding:
- Logic required for a system targets to a set of scenarios but with Machine Learning it will become more flexible and no additional if else logic will be required for making decisions, Machine Leaning will make decision based on data no need to specify conditional blocks.
- Decision made by Machine Learning algorithm will be more practical and will be based on real data.
- No need of deep understanding of system with Machine Learning algorithm
- Data can come from multiple sources
Programming Languages & Tools
You can use any programming language to work in Machine Learning, there are two most used programming languages are R programming language and Python.
R is more useful for research/data science and Python is a general purpose programming language. We will use Python for our learning both languages have good support and libraries to work with data handling and visualization, but for development purpose we will use python.
For python you can use IDE like PyCharm or browser based interpreter called Jupyter. both are easy to use but Jupyter gives better results in visualization of data and ease of use. For R you can use R Studio which is a great choice for R programmers.
You can download and install python from link given below. Latest version of python is Python 3.6. Just download and give installation path to C:\Python36 and press next until install.
After installation you can download PyCharm Community version from link below which is free
If you want to use Jupyter you can install anaconda package which comes with all necessary package, you can follow steps given at address:
You can even use Google cloud to run and store your projects which no installation required and provides you Jupyter to code online
Machine Learning is vast area and so much of research is going on, basically AI has been a research topic for people but from past years it is getting used into daily life from marketing to health.
My intention is to cover it from basic and getting into complex and more complex algorithms. In our upcoming articles we will start with basic algorithms without using any libraries and once we are mature enough to understand basics and data we will get into more complex and abstract level of inbuilt algorithms using libraries like numpy, scipy, pandas, matplot etc.