Both being tree-based algorithms, how is random forest different from Gradient boosting algorithm (GBM)?
a) Random forest builds multiple independent trees, while GBM builds trees sequentially
b) Random forest minimizes errors by averaging predictions from multiple trees, while GBM minimizes errors by gradient descent
c) Random forest selects a subset of features randomly for each tree, while GBM uses all features for each tree
d) Random forest uses bagging, while GBM uses boosting