This document discusses ensemble learning techniques in Apache Spark MLlib 1.5. It begins by defining ensemble learning as combining multiple learning modules to increase model stability and predictive power. It then provides examples of sources of variation between models, such as different data samples, assumptions, modeling techniques, and initialization parameters. Next, it demonstrates mathematically how combining three 70% accurate binary classifiers through majority voting can achieve over 78% accuracy. The remainder of the document explains techniques like bagging, boosting, and stacking to reduce bias and variance errors by leveraging diverse models. It provides an example using stacking with Spark MLlib on a dataset to improve over a random forest baseline precision.