An approach to machine learning that involves combining the results of multiple different models trained on the same data to achieve better and more accurate results. Even when using the same data and algorithm to train a particular model for a task, differences in training and configuration can result in different model generalization performance. Combining multiple models together to provide a single prediction output by combining their responses could perform better than any one single model that might have errors. An ensemble can make better predictions and achieve better performance than any single contributing model. Also, an ensemble can improve overall robustness of the model by reducing the spread or dispersion of the predictions and model performance.