Machine Learning is a rapidly evolving technology that automatically allows computers to learn from previous data. Machine learning employs a variety of algorithms to create mathematical models to make predictions based on past data. The most common use cases for Machine learning are image and video analysis, speech recognition, email filtering, recommending and forecasting systems, and many more. This article is a simple introduction to Machine Learning in which we will cover the basic concepts of Machine learning, including different types of learning, frameworks for building ML systems, and popular Python packages that you can use in the Machine Learning space.

## Introduction to machine learning

Machine Learning (ML) is a branch of computer science that evolved from pattern recognition and computational learning theory in Artificial Intelligence (or simply AI). We can also say that Machine learning is the sub-field of AI.

In other terms, Machine Learning is a branch of computer science that entails employing statistical methods to create computer systems that can either automatically improve performance over time or detect patterns in enormous amounts of data that would otherwise go unnoticed by humans.

Learning algorithms work on the basis that strategies, algorithms, and inferences that worked well in the past are likely to continue working well in the future. These algorithms build a model based on sample data, known as training data (the data known from the past), to make predictions or decisions without being explicitly programmed to do so.

### History of Machine Learning

Machine learning was first conceived from the mathematical modeling of neural networks. A paper by logician Walter Pitts and neuroscientist Warren McCulloch, published in 1943, attempted to mathematically map out thought processes and decision-making in human cognition.

In 1950, one of the most brilliant and influential British mathematicians and computer scientists created the Turing test. The test was designed to determine whether a computer has human-like intelligence. In order to pass the test, the computer needs to be able to convince a human to believe that it’s another human.

In 1957 the very first neural network for computers, known as perceptron was designed by Frank Rosenblatt. It successfully stimulated the thought processes of the human brain. This is where today’s neural networks originate from.

The nearest neighbor algorithm was written for the first time in 1967. It allows computers to start using basic pattern recognition. This algorithm can be used to map a route for a traveling salesman that starts in a random city and ensures that the salesman passes by all the required cities in the shortest time. Today, the nearest neighbor algorithm called KNN is mostly used to classify a data point on the basis of how its neighbors are classified.

Then the research and theoretical knowledge were added to the field of Machine learning as time passes. During the 1990s, the work in machine learning shifted from the knowledge-driven approach to the data-driven approach. Scientists and researchers created programs for computers that could analyze large amounts of data and draw conclusions from the results.

In 2006 the term “deep learning” was coined by Geoffrey Hinton. He used the term to explain a brand-new type of algorithm that allows computers to see and distinguish objects or text in images or videos.

And till today, we have made a lot of progress in Machine learning and deep learning because we get access to huge datasets.

### Why Machine Learning is so Popular?

The ability of Machine Learning algorithms to extract knowledge and insights from data with almost no programming effort, faster and better than humans can do it, make Machine Learning so popular nowadays. At this moment in time, we have everything we need to utilize Machine Learning:

**Data**: large amounts of datasets are easy to produce, collect and store**Compute power**supplies us with powerful processing CPUs/GPUs, hardware acceleration, and parallelization**Algorithms**are supported by a variety of ML frameworks and libraries improved for performance and use of the most efficient techniques.

## Types of Machine Learning

A Machine Learning system learns from existing data, constructs prediction models, and predicts the result whenever fresh data is received. The more data you’re using to educate the model, the more precise predictions you’ll get.

There are basically three main types of Machine learning.

- Supervised Machine learning
- Unsupervised Machine learning
- Reinforcement learning

### What is supervised machine learning?

Supervised learning, also known as supervised machine learning, is a subcategory of machine learning and artificial intelligence. It is defined by its use of labeled datasets to train algorithms that classify data or predict outcomes accurately. As input data is fed into the model, it adjusts its weights until the model has been fitted appropriately, which occurs as part of the cross-validation process. Supervised learning helps organizations solve a variety of real-world problems at scale, such as classifying spam in a separate folder from your inbox.

Supervised learning uses a training set to teach models to yield the desired output. This training dataset includes inputs and correct outputs, which allow the model to learn over time. The algorithm measures its accuracy through the loss function, adjusting until the error has been sufficiently minimized.

Supervised machine learning can be used to predict three different categories.

**Classification:**A classification dataset contains categorical values as target variables. Classification uses an algorithm to accurately assign test data into specific categories. It recognizes specific entities within the dataset and attempts to draw some conclusions on how those entities should be labeled or defined.**Regression:**A regression dataset contains continuous values as output variables. Regression is used to understand the relationship between dependent and independent variables. It is commonly used to make projections, such as for sales revenue for a given business.**Forecasting:**Forecasting refers to the practice of predicting what will happen in the future by taking into consideration events in the past and present. Basically, it is a decision-making tool that helps businesses cope with the impact of the future’s uncertainty by examining historical data and trends

### list of well-known supervised machine learning algorithms

There are various well-known supervised machine learning algorithms. In this section, we will just go through some of the most popular ones.

**KNN:**The k-nearest neighbors (KNN) algorithm is a simple, supervised machine learning algorithm that can be used to solve both classification and regression problems. It’s easy to implement and understand but has a major drawback of becoming significantly slows as the size of that data in use grows**Linear Regression:**Linear Regression is a supervised machine learning algorithm where the predicted output is continuous and has a constant slope. It’s used to predict values within a continuous range, (e.g. sales, price) rather than trying to classify them into categories (e.g. cat, dog).**Decision Tree:**A decision tree is a very specific type of probability tree that enables you to make a decision about some kind of process. For example, you might want to choose between manufacturing item A or item B.**Random Forest**: The random forest is a classification algorithm consisting of many decision trees. It uses bagging and feature randomness when building each individual tree to try to create an uncorrelated forest of trees whose prediction by the committee is more accurate than that of any individual tree.**Naive Bayes:**The Naive Bayes classification algorithm is a probabilistic classifier. It is based on probability models that incorporate strong independence assumptions. The independence assumptions often do not have an impact on reality. Therefore they are considered naive.**Gradient boosting algorithm:**Gradient boosting is a greedy algorithm and can overfit a training dataset quickly. It can benefit from regularization methods that penalize various parts of the algorithm and generally improve the performance of the algorithm by reducing overfitting.**XGBoost algorithm:**XGBoost is a scalable and highly accurate implementation of gradient boosting that pushes the limits of computing power for boosted tree algorithms, being built largely for energizing machine learning model performance and computational speed.**CatBoost algorithm:**CatBoost is an algorithm for gradient boosting on decision trees. It is developed by Yandex researchers and engineers and is used for search, recommendation systems, personal assistants, self-driving cars, weather prediction, and many other tasks at Yandex and in other companies, including CERN, Cloudflare, and Careem taxi.**LightGBM algorithm:**LightGBM, short for Light Gradient Boosting Machine, is a free and open-source distributed gradient boosting framework for machine learning originally developed by Microsoft. It is based on decision tree algorithms and used for ranking, classification, and other machine learning tasks.**Prophet algorithm:**The Prophet algorithm is an additive model, which means that it detects the following trend and seasonality from the data first, then combine them together to get the forecasted values. Overall Trend. Yearly, Weekly, Daily Seasonality.**ARIMA model:**ARIMA is an acronym for “autoregressive integrated moving average.” It’s a model used in statistics and econometrics to measure events that happen over a period of time. The model is used to understand past data or predict future data in a series.**Ridge and Lasso regression:**Ridge and Lasso regression are some of the simple techniques to reduce model complexity and prevent over-fitting which may result from simple linear regression. Ridge Regression: In ridge regression, the cost function is altered by adding a penalty equivalent to the square of the magnitude of the coefficients.**Extra Trees algorithm:**Extremely Randomized Trees, or Extra Trees for short, is an ensemble machine learning algorithm. Specifically, it is an ensemble of decision trees and is related to other ensembles of decision tree algorithms such as bootstrap aggregation (bagging) and random forest.**AdaBoost algorithm:**AdaBoost can be used to boost the performance of any machine learning algorithm. It is best used with weak learners. These are models that achieve accuracy just above random chance on a classification problem. The most suited and therefore most common algorithm used with AdaBoost is decision trees with one level.

### what is Unsupervised machine learning?

Unsupervised learning, also known as unsupervised machine learning, uses machine learning algorithms to analyze and cluster unlabeled datasets. In unsupervised machine learning, even while training the model, the model doesn’t know the output values. It finds some hidden patterns from the input datasets and creates conclusions. In other words, the unsupervised algorithms discover hidden patterns or data groupings without the need for human intervention. Its ability to discover similarities and differences in information makes it the ideal solution for exploratory data analysis, cross-selling strategies, customer segmentation, and image recognition.

Unsupervised learning models are utilized for three main tasks—clustering, association, and dimensionality reduction.

**Clustering:**Clustering is a data mining technique that groups unlabeled data based on their similarities or differences. Clustering algorithms are used to process raw, unclassified data objects into groups represented by structures or patterns in the information. Clustering algorithms can be categorized into a few types, specifically exclusive, overlapping, hierarchical, and probabilistic.**Association rules:**An association rule is a rule-based method for finding relationships between variables in a given dataset. These methods are frequently used for market basket analysis, allowing companies to better understand relationships between different products. Understanding the consumption habits of customers enables businesses to develop better cross-selling strategies and recommendation engines.**Dimensionality reduction:**While more data generally yields more accurate results, it can also impact the performance of machine learning algorithms (e.g. overfitting) and it can also make it difficult to visualize datasets. Dimensionality reduction is a technique used when the number of features, or dimensions, in a given dataset is too high. It reduces the number of data inputs to a manageable size while also preserving the integrity of the dataset as much as possible.

### List of well-known unsupervised machine learning algorithms

Here is the list of well-known unsupervised machine learning algorithms.

**K-means clustering**: the K-means algorithm identifies k number of centroids, and then allocates every data point to the nearest cluster while keeping the centroids as small as possible. The ‘means’ in the K-means refers to averaging of the data; that is, finding the centroid.**Hierarchal clustering:**Hierarchical clustering, also known as hierarchical cluster analysis, is an algorithm that groups similar objects into groups called clusters. The endpoint is a set of clusters, where each cluster is distinct from the other cluster, and the objects within each cluster are broadly similar to each other.**Anomaly detection**: Anomaly detection is an unsupervised data processing technique to detect anomalies from the dataset. An anomaly can be broadly classified into different categories: Outliers: Short/small anomalous patterns that appear in a non-systematic way in data collection.**Principle Component Analysis**: Principal Component Analysis is an unsupervised learning algorithm that is used for dimensionality reduction in machine learning. It is a statistical process that converts the observations of correlated features into a set of linearly uncorrelated features with the help of orthogonal transformation.**Independent Component Analysis**: Independent Component Analysis (ICA) is a technique that allows the separation of a mixture of signals into their different sources, by assuming non-Gaussian signal distribution.**Apriori algorithm**: Apriori is an algorithm for frequent item set mining and association rule learning over relational databases. It proceeds by identifying the frequent individual items in the database and extending them to larger and larger item sets as long as those item sets appear sufficiently often in the database.

### What is reinforcement learning?

Reinforcement learning is the training of machine learning models to make a sequence of decisions. The agent learns to achieve a goal in an uncertain, potentially complex environment. In reinforcement learning, artificial intelligence faces a game-like situation. The computer employs trial and error to come up with a solution to the problem. To get the machine to do what the programmer wants, the artificial intelligence gets either rewards or penalties for the actions it performs. Its goal is to maximize the total reward.

There are two types of reinforcement learning.

**Positive:**Positive Reinforcement is defined as when an event, occurs due to a particular behavior and increases the strength and the frequency of the behavior. In other words, it has a positive effect on behavior.**Negative:**Negative Reinforcement is defined as the strengthening of behavior because a negative condition is stopped or avoided.

## Summary

Machine learning is the use and development of computer systems that are able to learn and adapt without following explicit instructions, by using algorithms and statistical models to analyze and draw inferences from patterns in data. In this article, we covered the basics of Machine Learning. We discussed various types of machine learning and different algorithms that are available.