Bagging (bootstrap aggregating) trains many models on bootstrap samples (random samples with replacement) and averages them. Averaging reduces variance without adding much bias.
A random forest bags decision trees and also considers only a random subset of features at each split, which decorrelates the trees so averaging helps more. The out-of-bag samples (rows a tree didn't see) give a free validation estimate.
Random forests are robust, hard to badly misconfigure and parallelise trivially. They rarely beat well-tuned boosting on accuracy.
Going deeper
Random forests rarely need much tuning: more trees never hurts accuracy (only time), and max_features (features considered per split) is the main knob. Out-of-bag error gives a near-free validation estimate.
ExtraTrees (extremely randomised trees) pick split thresholds at random, faster and sometimes better.
Best resources for this lesson
- InteractiveRandom forests (MLU-Explain)
- DocsEnsemble methods (scikit-learn)