Skip to content

adaboost

nickgillian edited this page Aug 14, 2016 · 1 revision

#AdaBoost

##Description AdaBoost (Adaptive Boosting) is a powerful classifier that works well on both basic and more complex recognition problems.

AdaBoost works by creating a highly accurate classifier by combining many relatively weak and inaccurate classifiers. AdaBoost therefore acts as a meta algorithm, which allows you to use it as a wrapper for other classifiers. In the GRT, these classifiers are called Weak Classifiers such as a DecisionStump (which is just one node of a DecisionTree). AdaBoost is adaptive in the sense that subsequent classifiers added at each round of boosting are tweaked in favor of those instances misclassified by previous classifiers. The default number of boosting rounds for AdaBoost is 20, however this can easily be set using the setNumBoostingIterations(UINT numBoostingIterations) function or via the AdaBoost constructor.

AdaBoost is part of the GRT classification modules.

##Advantages AdaBoost is a powerful classification algorithm that has enjoyed practical success with applications in a wide variety of fields, such as biology, computer vision, and speech processing. Unlike other powerful classifiers, such as SVM, AdaBoost can achieve similar classification results with much less tweaking of parameters or settings (unless of course you choose to use SVM with AdaBoost). The user only needs to choose: (1) which weak classifier might work best to solve their given classification problem; (2) the number of boosting rounds that should be used during the training phase. The GRT enables a user to add several weak classifiers to the family of weak classifiers that should be used at each round of boosting. The AdaBoost algorithm will select the weak classifier that works best at that round of boosting.

##Disadvantages AdaBoost can be sensitive to noisy data and outliers. In some problems, however, it can be less susceptible to the overfitting problem than most learning algorithms. The GRT AdaBoost algorithm does not currently support null rejection, although this will be added at some point in the near future.

##Training Data Format You should use the ClassificationData data structure to train the AdaBoost classifier.

##Example Code AdaBoost example