Which machine learning algorithm is used for both regression and classification tasks and is based on averaging the predictions of multiple weak learners?
a) Decision Trees
b) Random Forest
c) Gradient Boosting Machines (GBM)
d) k-Nearest Neighbors (k-NN)