A RF model consists of a collection of base learners, typically decision trees. Each base learner is trained on random subsamples of the training data with replacement. This process is known as bootstrap aggregation (bagging), which helps to combat overfitting. Furthermore, individual decision trees are split on random subsets of the features, which further helps to combat overfitting. Classification is done by aggregating the votes from the base learners. We used the scikit-learn random forest implementation. The RF hyperparameters include the number of base learners, number of features, leaf node samples, and class weights (Table ). Because RF-R regression models grew too large under some hyperparameter settings, we only considered RF-C classification models.