# error

Class: TreeBagger

Error (misclassification probability or MSE)

## Syntax

```err = error(B,TBLnew,Ynew) err = error(B,Xnew,Ynew) err = error(B,TBLnew,Ynew,'param1',val1,'param2',val2,...) err = error(B,Xnew,Ynew,'param1',val1,'param2',val2,...) ```

## Description

`err = error(B,TBLnew,Ynew)` computes the misclassification probability for classification trees or mean squared error (MSE) for regression trees for each tree, for the predictors contained in the table `TBLnew` given true response `Ynew`. You can omit `Ynew` if `TBLnew` contains the response variable. If you trained `B` using sample data contained in a table, then the input data for this method must also be in a table.

`err = error(B,Xnew,Ynew)` computes the misclassification probability for classification trees or mean squared error (MSE) for regression trees for each tree, the for predictors contained in the matrix `Xnew` given true response `Ynew`. If you trained `B` using sample data contained in a matrix, then the input data for this method must also be in a matrix.

For classification, `Ynew` can be a numeric vector, character matrix, string array, cell array of character vectors, categorical vector or logical vector. For regression, `Y` must be a numeric vector. `err` is a vector with one error measure for each of the `NTrees` trees in the ensemble `B`.

`err = error(B,TBLnew,Ynew,'param1',val1,'param2',val2,...)` or ```err = error(B,Xnew,Ynew,'param1',val1,'param2',val2,...)``` specifies optional parameter name-value pairs:

 `'Mode'` Character vector or string scalar indicating how the method computes errors. If set to `'cumulative'` (default), `error` computes cumulative errors and `err` is a vector of length `NTrees`, where the first element gives error from `trees(1)`, second element gives error from`trees(1:2)` etc., up to `trees(1:NTrees)`. If set to `'individual'`, `err` is a vector of length `NTrees`, where each element is an error from each tree in the ensemble. If set to `'ensemble'`, `err` is a scalar showing the cumulative error for the entire ensemble. `'Weights'` Vector of observation weights to use for error averaging. By default the weight of every observation is 1. The length of this vector must be equal to the number of rows in `X`. `'Trees'` Vector of indices indicating what trees to include in this calculation. By default, this argument is set to `'all'` and the method uses all trees. If `'Trees'` is a numeric vector, the method returns a vector of length `NTrees` for `'cumulative'` and `'individual'` modes, where `NTrees` is the number of elements in the input vector, and a scalar for `'ensemble'` mode. For example, in the `'cumulative'` mode, the first element gives error from `trees(1)`, the second element gives error from `trees(1:2)` etc. `'TreeWeights'` Vector of tree weights. This vector must have the same length as the `'Trees'` vector. The method uses these weights to combine output from the specified trees by taking a weighted average instead of the simple non-weighted majority vote. You cannot use this argument in the `'individual'` mode. `'UseInstanceForTree'` Logical matrix of size `Nobs`-by-`NTrees` indicating which trees should be used to make predictions for each observation. By default the method uses all trees for all observations.

## Algorithms

When estimating the ensemble error:

• Using the `'Mode'` name-value pair argument, you can specify to return the error any of these three ways:

• The error for individual trees in the ensemble

• The cumulative error over all trees

• The error for the entire ensemble

• Using the `'Trees'` name-value pair argument, you can specify which trees to use in the ensemble error calculations.

• Using the `'UseInstanceForTree'` name-value pair argument, you can specify which observations in the input data (`X` and `Y`) to use in the ensemble error calculation for each selected tree.

• Using the `'Weights'` name-value pair argument, you can attribute each observation with a weight. For the formulae that follow, wj is the weight of observation j.

• Using the `'TreeWeights'` name-value pair argument, you can attribute each tree with a weight.

For regression problems, `error` estimates the weighted MSE of the ensemble of bagged regression trees for predicting `Y` given `X` using selected trees and observations.

1. `error` predicts responses for selected observations in `X` using the selected regression trees in the ensemble.

2. The MSE estimate depends on the value of `'Mode'`.

• If you specify `'Mode','Individual'`, then the weighted MSE for tree t is

`${\text{MSE}}_{t}=\frac{1}{\sum _{j=1}^{n}{w}_{j}}\sum _{j=1}^{n}{w}_{j}{\left({y}_{j}-{\stackrel{^}{y}}_{tj}\right)}^{2}.$`

${\stackrel{^}{y}}_{tj}$ is the predicted response of observation j from selected regression tree t. `error` sets any unselected observations within a selected tree to the weighted sample average of the observed, training data responses.

• If you specify `'Mode','Cumulative'`, then the weighted MSE is a vector of size T* containing cumulative, weighted MSEs over the T*T selected trees. `error` follows these steps to estimate MSEt*, the cumulative, weighted MSE using the first t selected trees.

1. For selected observation j, j = 1,...,n, `error` estimates ${\stackrel{^}{y}}_{\text{bag},tj}$, the weighted average of the predictions among the first t selected trees (for details, see `predict`). For this computation, `error` uses the tree weights.

2. `error` estimates the cumulative, weighted MSE through tree t.

`${\text{MSE}}_{t}^{\ast }=\frac{1}{\sum _{j=1}^{n}{w}_{j}}\sum _{j=1}^{n}{w}_{j}{\left({y}_{j}-{\stackrel{^}{y}}_{\text{bag},tj}\right)}^{2}.$`

`error` sets observations that are unselected for all selected trees to the weighted sample average of the observed, training data responses.

• If you specify `'Mode','Ensemble'`, then the weighted MSE is the last element of the cumulative, weighted MSE vector.

For classification problems, `error` estimates the weighted misclassification rate of the ensemble of bagged classification trees for predicting `Y` given `X` using selected trees and observations.

• If you specify `'Mode','Individual'`, then the weighted misclassification rate for tree t is

`${e}_{t}=\frac{1}{\sum _{j=1}^{n}{w}_{j}}\sum _{j=1}^{n}{w}_{j}I\left({y}_{j}\ne {\stackrel{^}{y}}_{tj}\right).$`

${\stackrel{^}{y}}_{tj}$ is the predicted class for selected observation j using from selected classification tree t. `error` sets any unselected observations within a selected tree to the predicted, weighted, most popular class over all training responses. If there are multiple most popular classes, `error` considers the one listed first in the `ClassNames` property of the `TreeBagger` model the most popular.

• If you specify `'Mode','Cumulative'` then the weighted misclassification rate is a vector of size T* containing cumulative, weighted misclassification rates over the T*T selected trees. `error` follows these steps to estimate et*, the cumulative, weighted misclassification rate using the first t selected trees.

1. For selected observation j, j = 1,...,n, `error` estimates ${\stackrel{^}{y}}_{\text{bag},tj}$, the weighted, most popular class among the first t selected trees (for details, see `predict`). For this computation, `error` uses the tree weights.

2. `error` estimates the cumulative, weighted misclassification rate through tree t.

`${e}_{t}^{\ast }=\frac{1}{\sum _{j=1}^{n}{w}_{j}}\sum _{j=1}^{n}{w}_{j}I\left({y}_{j}\ne {\stackrel{^}{y}}_{\text{bag},tj}\right).$`

`error` sets any observations that are unselected for all selected trees to the predicted, weighted, most popular class over all training responses. If there are multiple most popular classes, `error` considers the one listed first in the `ClassNames` property of the `TreeBagger` model the most popular.

• If you specify `'Mode','Ensemble'`, then the weighted misclassification rate is the last element of the cumulative, weighted misclassification rate vector.