ML & AI for Software Developers - Part 16
Deep Learning

Deep learning is a subset of machine learning that relies primarily on neural networks. Most of what’s considered AI today is accomplished with deep learning. From recognizing objects in photos to real-time speech translation to using computers to generate art, music, poetry, and photorealistic faces, deep learning allows computers to perform feats of magic that…

ML & AI for Software Developers - Part 15
Building Machine-Learning Models with ML.NET

Scikit-learn is arguably the world’s most popular machine-learning framework. The efficacy of the library, the documentation that accompanies it, and the mindshare that surrounds it are the primary reasons more ML models are written in Python than any other language. But Scikit isn’t the only machine-learning framework. Others exist for other languages, and if you…

ML & AI for Software Developers - Part 13
Recommender Systems

Another branch of machine learning that has proven its mettle in recent years is recommender systems – systems that recommend products or services to customers. Amazon’s recommender system reportedly drives 35% of its sales. The good news is that you don’t have to be Amazon to benefit from a recommender system, nor do you have…

ML & AI for Software Developers - Part 12
PCA-Based Anomaly Detection

Anomaly detection is a branch of machine learning that seeks to identify anomalies in datasets or data streams. Airbus uses it to predict failures in jet engines and detect anomalies in telemetry data beamed down from the International Space Station. Credit-card companies use it to detect credit-card fraud. The goal of anomaly detection is to…

ML & AI for Software Developers - Part 11
Principal Component Analysis

Principal Component Analysis, or PCA, is one of the minor miracles of machine learning. It’s a dimensionality-reduction technique that reduces the number of dimensions in a dataset without sacrificing a commensurate amount of information. While that might seem underwhelming on the face of it, it has profound implications for engineers and software developers working to…

ML & AI for Software Developers - Part 10
Support-Vector Machines

Support-vector machines, also known as SVMs, represent the cutting edge of statistical machine learning. They are typically used for classification problems, although they can be used for regression, too. SVMs often succeed at finding separation between classes when other models – that is, other learning algorithms – do not. Scikit-learn makes building SVMs easy with…

ML & AI for Software Developers - Part 9
Multiclass Classification

The three previous posts in this series introduced binary classification and provided working examples of its use, including sentiment analysis and spam filtering. Now it’s time to tackle multiclass classification, in which there are n possible outcomes rather than just two. A great example of multiclass classification is performing optical character recognition: examining a hand-written…

ML & AI for Software Developers - Part 8
Binary Classification: Spam Filtering

My previous post introduced a machine-learning model that used logistic regression to predict whether text input to it expresses positive or negative sentiment. We used the probability that the text expresses positive sentiment as a sentiment score, and saw that expressions such as “The long lines and poor customer service really turned me off” score…