Adaboost Regressor:
Adaboost combines multiple classifiers to increase the accuracy of classification. It is an iterative ensemble method. AdaBoost classifier builds a strong classifier by combining multiple poorly performing classifiers so that you will get high accuracy strong classifier. The basic concept behind Adaboost is to set the weights of classifiers and training the data sample in each iteration such that it ensures the accurate predictions of unusual observations.
1. Initially, Adaboost selects a training subset randomly.
2. It iteratively trains the AdaBoost machine learning model by selecting the training set based on the accurate prediction of the last training.
3. It assigns the higher weight to wrong classified observations so that in the next iteration these observations will get a high probability for classification.
4. Also, it assigns the weight to the trained classifier in each iteration according to the accuracy of the classifier. The more accurate classifier will get high weight.
5. This process iterates until the complete training data fits without any error or until it reached the specified maximum number of estimators.
6. To classify, perform a "vote" across all of the learning algorithms you built.
Here the learning parameters that we chose for our model were:
Base estimator: Decision Tree Regressor with max depth as 4.
Learning Rate: 0.01
Number of estimators: 5000
Random State: 42
What do these tunable parameters mean:
base_estimator: object, optional (default=None) The base estimator from which the boosted ensemble is built. Support for sample weighting is required. If None, then the base estimator is DecisionTreeRegressor(max_depth=3)
n_estimators: integer, optional (default=50) The maximum number of estimators at which boosting is terminated. In case of a perfect fit, the learning procedure is stopped early.
learning_rate : float, optional (default=1.) The learning rate shrinks the contribution of each regressor by learning_rate. There is a trade-off between learning_rate and n_estimators.
random_state: int, RandomState instance or None, optional (default=None) If int, random_state is the seed used by the random number generator; If RandomState instance, random_state is the random number generator; If None, the random number generator is the RandomState instance used by np.random.