# margin

Classification margin

## Syntax

`mar = margin(B,TBLnew,Ynew)`

mar = margin(B,Xnew,Ynew)

mar = margin(B,TBLnew,Ynew,'param1',val1,'param2',val2,...)

mar
= margin(B,Xnew,Ynew,'param1',val1,'param2',val2,...)

## Description

`mar = margin(B,TBLnew,Ynew)`

computes the classification margins 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.

`mar = margin(B,Xnew,Ynew)`

computes the classification margins for the
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.

`Ynew`

can be a numeric vector, character matrix, string array, cell array
of character vectors, categorical vector or logical vector. `mar`

is a numeric
array of size `Nobs`

-by-`NTrees`

, where `Nobs`

is the number of rows of `TBLnew`

and `Ynew`

, and
`NTrees`

is the number of trees in the ensemble `B`

. For
observation `I`

and tree `J`

, `mar(I,J)`

is
the difference between the score for the true class and the largest score for other classes. This
method is available for classification ensembles only.

`mar = margin(B,TBLnew,Ynew,'param1',val1,'param2',val2,...)`

or
```
mar
= margin(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), `margin` computes cumulative
errors and `mar` is an `Nobs` -by-`NTrees`
matrix, where the first column gives error from `trees(1)` , second column
gives error from`trees(1:2)` etc., up to
`trees(1:NTrees)` . If set to `'individual'` ,
`mar` is a `Nobs` -by-`NTrees` matrix,
where each element is an error from each tree in the ensemble. If set to
`'ensemble'` , `mar` a single column of length
`Nobs` showing the cumulative margins for the entire ensemble. |

`'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. |