Today’s developers often hear about leveraging machine learning algorithms in order to build more intelligent applications, but many don’t know where to start.
One of the most important aspects of developing smart applications is to understand the underlying machine learning models, even if you aren’t the person building them. Whether you are integrating a recommendation system into your app or building a chat bot, this guide will help you get started in understanding the basics of machine learning.
This introduction to machine learning and list of resources is adapted from my October 2016 talk at ACT-W, a women’s tech conference.
While this is only a brief definition, machine learning means we can use statistical models and probabilistic algorithms to answer questions so we can make informative decisions based on our data.
An excerpt from Rob Schapire’s Theoretical Machine Learning lecture in 2008 sums up machine learning very nicely:
The two main types of machine learning algorithms are supervised and unsupervised learning. Unsupervised algorithms are great for exploring your dataset and are used for pattern detection, object recognition in images and other classification problems like recommendations based on similar items.
The k-means algorithm is a popular unsupervised algorithm that makes no assumptions about the data meaning it uses random seeds and an iterative process that eventually converges. This unsupervised clustering algorithm uses a distance metric with the goal of minimizing the Euclidean distance from the data points to a centroid, remeasuring and reassigning each data point to a centroid on each iteration.
This algorithm takes nobservations intokclusters with each observation belonging to theclusterwith the nearestmean, serving as aprototypeof the cluster.This results in a partitioning of the data space intoVoronoi cells. K-means is used inmarket segmentation,computer vision,geostatistics,astronomyandagriculture.
A model is a supervised algorithm if it relies on training data that already contains the correct label for each input and makes inferences based on that relationship to predict new unseen data. Supervised algorithms are often used for classification problems such as sentiment labeling, object detection in images, credit card fraud detection, and spam filtering to just name a few use cases.
The two main types of supervised machine learning are regression and classification. For instance a regression model is used for the prediction of continuous data such as predicting housing prices based on historical data points and trends. A classification model is used for the prediction of categorical data, for example assigning discrete class labels in an image classification model that labels the image as a person or landscape.
There are many types of supervised algorithms available, one of the most popular ones is the Naive Bayes model which is often a good starting point for developers since it’s fairly easy to understand the underlying probabilistic model and easy to execute.