#### Overview of this book

This book will teach you about popular machine learning algorithms and their implementation. You will learn how various machine learning concepts are implemented in the context of Spark ML. You will start by installing Spark in a single and multinode cluster. Next you'll see how to execute Scala and Python based programs for Spark ML. Then we will take a few datasets and go deeper into clustering, classification, and regression. Toward the end, we will also cover text processing using Spark ML. Once you have learned the concepts, they can be applied to implement algorithms in either green-field implementations or to migrate existing systems to this new platform. You can migrate from Mahout or Scikit to use Spark ML. By the end of this book, you will acquire the skills to leverage Spark's features to create your own scalable machine learning applications and power a modern data-driven business.
Preface
Math for Machine Learning
Obtaining, Processing, and Preparing Data with Spark
Building a Recommendation Engine with Spark
Building a Classification Model with Spark
Building a Regression Model with Spark
Building a Clustering Model with Spark
Dimensionality Reduction with Spark
Real-Time Machine Learning with Spark Streaming
Pipeline APIs for Spark ML

# Gaussian Mixture Model

A mixture model is a probabilistic model of a sub-population within a population. These models are used to make statistical inferences about a sub-population, given the observations of pooled populations.

A Gaussian Mixture Model (GMM) is a mixture model represented as a weighted sum of Gaussian component densities. Its model coefficients are estimated from training data using the iterative Expectation-Maximization (EM) algorithm or Maximum A Posteriori (MAP) estimation from a trained model.

The spark.ml implementation uses the EM algorithm.

It has the following parameters:

• k: Number of desired clusters
• convergenceTol: Maximum change in log-likelihood at which one considers convergence achieved
• maxIterations: Maximum number of iterations to perform without reaching convergence
• initialModel: Optional starting point from which to start the EM algorithm
(if this parameter is omitted, a random...