Machine learning is one of the most popular domain the new age application development programmers and companies are encashing on—just another field of computer science, which leverages on the applied practice of mathematics as well as statistics.
Why this created the buzz?
Because it reduced the intensive logic implementations for processing the massive quantity of data(generally known as big data), and the results are promising in terms of finding patterns in the data resulting in better business-oriented decisions.
Now, as a beginner, the concept of Machine learning could be overwhelming as there has been plenty of scattered information available across the web, including various theoretical courses and proprietor documentations.
So, here I will try to get you a simple flow on how as a beginner, you can get your self to familiarize yourself with the machine learning domain and where you can start looking at in the first place.
The formal definition could be:
Machine learning(ML) is a field of computer science concerned with programs that learn as well as is concerned with the question of how to construct computer programs that automatically improve with experience.
Now you might also be thinking about how artificial intelligence is different from machine learning, so here is a big picture for you.
Here you can see that machine learning is the subset or, in fact, the more specialized form of artificial intelligence. And, further supports the deep learning domain for more intense & intelligent applications.
Now the next point to understand is why do we want the computer programs to improve with experience. it’s because:
we have huge data and we want to make decisions or predictions from it
AND
we want computers to learn to identify patterns without being explicitly programmed to
And as said, DATA is the new currency for this digital world and is priceless. Therefore, it’s essential to utilize it to achieve the unique potential for your business.
Great, you know why it is essential for computers to improve.
Now, as a programmer, what should you know So that this automation can be achieved.
Types of machine learning
Broadly there are three
Supervised Learning
This is simplest to implement, where primarily the problems related to regression and classification are solved. And the most important is that the Data available for analysis is available in a structured way with minimum anomalies, and even if anomalies are present, they can be rectified by using statistical measures.
General use cases that are implemented under this: Image classifications, Fraud detections, weather/market forecasting, etc. So you can simply infer that where ever the simple predictions are supposed to be done that Supervised learning.
Unsupervised Learning
This is again working on the same objective of prediction, but the complexity is increased. Because the data available for analysis is either minimally structured or totally unstructured. Therefore the added process of Clustering or Dimensionality Reduction is required to be performed before the process of predications can be put in place.
So this requires more insights into the working concepts of statistical procedures and is the next stage of learning in ML. The general use case implementations can be Customer segmentation, recommender system, Feature discoveries, etc.
Reinforcement Learning
This is basically leveraging the power from both the supervised and unsupervised procedures with an addon factor of iterative learning if some error occurred(mispredictions) in the data interpretations.
The procedures(algorithms) implemented in this system are designed in such a way so that it can tune their attributes/parameters(variables) to test it against the variety of values and find the best combinations, for example, neural networks have a variety of parameters like the number of layers, the number of neurons in each layer, connection density between neurons, weights, etc.
The general use cases for such types of implementations are Robot navigation, learning tasks, game AI, self-driving cars, etc.
The interesting point is that corresponding to each type of learning there have been plenty of algorithms published as APIs under the various opensource ML libraries such as skLearn, Keras, Tensorflow, etc. and for data management is working memory(RAM) the primary libraries used are panadas and Numpy.
Here is a webinar discussion on the machine learning types and relevant stuff
So, as a programmer, it has become very easy for you to implement your use cases, provided you know what problem you are trying to solve and what data you will be using along with which algorithm you are going to use and which library supports it.
Machine Learning implementation steps
- Defining your problem statement
- Getting data from various sources and pre-processing it for feeding to the selected algorithm(s).
- Model building by selecting the right ML algorithm and test it with data.
- Optimize and improve(this requires a repeat of step 2 and step 3 till satisfactory results were produced)
- Summarize the results/Tell a story by using various Data visualizations.
That would be it if you followed these steps you are through with your ML implementation work.
Now the next point is how do I know which library to look into and which language shall be learned so that the implementation can be hassle-free.
Possible Machine learning track
- Choose a programming language: Python OR R programming. I would prefer to have a python as a beginner as it’s easy to follow, and many libraries are supported by the ML community are programmed using Python. Apart from this should CRUD skills for SQL. Also, it is not like that you required to be an expert in programming skills that you will become as you practice your work.
- Practice your data processing/wrangling using Pandas & NumPy. Also, you should practice with the Matplot library to get yourself familiarised with the data visualizations using various charts.
- Now, as you are through with the first two stages, it is time to open your wings and get your hands dirty with algorithms from sklearn/Keras libraries or any other of your interest as per your problem statement. Take your time to work on various small implementations, start with regression-based algorithms, then classification, clustering, and so on. Spend some good time practising these as this will lay the foundation for your enterprise career.
- So finally, it’s time to move on to the enterprise solutions used by the industry for processing real-time data like presto, HIVE, Hadoop, AWS ML toolkits, SPARK, etc.
Moreover, apart from what all is mentioned above, each specific cloud service provider has its own service stack to support the machine learning environment within its platform. And it is always up to your inclination toward the provider, and you additionally learn their platform-dependent tools over and above what we have discussed.
In case if you have a different say or have something to discuss, feel free to start the discussion thread below. I would love to do so.
Who am I to teach you about machine learning?
Well, I have been working intensively in ML to solve my Ph.D. Research problem and have been through various ML projects to test out multiple hypotheses.
Apart from this, I have been mentoring the budding researchers working on finding solutions to complex problems in the cloud computing domain.
You may read my brief career progress on the About page or check my LinkedIn.
Look forward to having you in the webinar and have a great discussion.
Cheers!
Anupinder