# BrownBoost Classifier

BrownBoost is a boosting classification algorithm.
It is more robust to noisy data sets than other boosting classification algorithms [Freund99].

BrownBoost is a binary classifier.
For a multi-class case, use Multi-class Classifier framework of the library.

## Details

Given

*feature vectors of size*n

*and a vector of class labels , where describes the class to which the feature vector belongs, and a weak learner algorithm, the problem is to build a two-class BrownBoost classifier.*p

Training Stage

The model is trained using the Freund method [Freund01] as follows:

- Calculate , where:
- is an inverse error function,
- is a target classification error of the algorithm defined as
- is the error function,
- is a hypothesis formulated by the
-th weak learner, ,i - is the weight of the hypothesis.

- Set initial prediction values: .
- Set “remaining timing”: .
- Do for until
- With each feature vector and its label of positive weight, associate .
- Call the weak learner with the distribution defined by normalizing Lmath:
to receive a hypothesis .W_i(x, y) - Solve the differential equationwith given boundary conditions
and to find and such that either or , where is a given small constant needed to avoid degenerate cases.t = 0 - Update the prediction values: .
- Update “remaining time”: .

End do

The result of the model training is the array of

*weak learners .*M

Prediction Stage

Given the BrownBoost classifier and

*feature vectors , the problem is to calculate the final classification confidence, a number from the interval , using the rule:*r

## Batch Processing

BrownBoost classifier follows the general workflow described in Classification Usage Model.

Training

For a description of the input and output, refer to Classification Usage Model.

At the training stage, a BrownBoost classifier has the following parameters:

Parameter | Default Value | Description |
---|---|---|

algorithmFPType | float | The floating-point type that the algorithm uses for intermediate computations. Can be float or double . |

method | defaultDense | The computation method used by the BrownBoost classifier. The only training method supported so far is the Y. Freund’s method. |

nClasses | 2 | The number of classes. |

weakLearnerTraining | : Pointer to an object of the weak learner training classDEPRECATED : Pointer to an object of the classification stump training classUSE INSTEAD | : Pointer to the training algorithm of the weak learner. By default, a stump weak learner is used.DEPRECATED : Pointer to the classifier training algorithm. Be default, a classification stump with gini split criterion is used.USE INSTEAD |

weakLearnerPrediction | : Pointer to an object of the weak learner prediction classDEPRECATED : Pointer to an object of the classification stump prediction classUSE INSTEAD | : Pointer to the prediction algorithm of the weak learner. By default, a stump weak learner is used.DEPRECATED : Pointer to the classifier prediction algorithm. Be default, a classification stump with gini split criterion is used.USE INSTEAD |

accuracyThreshold | 0.01 | BrownBoost training accuracy
. |

maxIterations | 100 | The maximal number of iterations for the BrownBoost algorithm. |

newtonRaphsonAccuracyThreshold | Accuracy threshold of the Newton-Raphson method used underneath the BrownBoost algorithm. | |

newtonRaphsonMaxIterations | 100 | The maximal number of Newton-Raphson iterations in the algorithm. |

degenerateCasesThreshold | The threshold used to avoid degenerate cases. |

Prediction

For a description of the input and output, refer to Classification Usage Model.

At the prediction stage, a BrownBoost classifier has the following parameters:

Parameter | Default Value | Description |
---|---|---|

algorithmFPType | float | The floating-point type that the algorithm uses for intermediate computations. Can be float or double . |

method | defaultDense | Performance-oriented computation method, the only method supported by the BrownBoost classifier. |

nClasses | 2 | The number of classes. |

weakLearnerPrediction | : Pointer to an object of the weak learner prediction classDEPRECATED : Pointer to an object of the classification stump prediction classUSE INSTEAD | : Pointer to the prediction algorithm of the weak learner. By default, a stump weak learner is used.DEPRECATED : Pointer to the classifier prediction algorithm. Be default, a classification stump with gini split criterion is used.USE INSTEAD |

accuracyThreshold | 0.01 | BrownBoost training accuracy
. |

## Examples

C++ (CPU)

Batch Processing:

Java*

Python*

Batch Processing: