# resubLoss

Resubstitution loss for regression ensemble model

## Syntax

``L = resubLoss(ens)``
``L = resubLoss(ens,Name=Value)``

## Description

example

````L = resubLoss(ens)` returns the resubstitution loss computed for the data used by `fitrensemble` to create `ens`. By default, `resubLoss` uses the mean squared error to compute `L`.```
````L = resubLoss(ens,Name=Value)` specifies additional options using one or more name-value arguments. For example, you can specify the loss function, the aggregation level for output, and whether to perform computations in parallel.```

## Input Arguments

expand all

Regression ensemble model, specified as a `RegressionEnsemble` model object trained with `fitrensemble`.

### Name-Value Arguments

Specify optional pairs of arguments as `Name1=Value1,...,NameN=ValueN`, where `Name` is the argument name and `Value` is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose `Name` in quotes.

Example: `resubLoss(ens,Learners=[1 2 4],UseParallel=true)` specifies to use the first, second, and fourth weak learners in the ensemble, and to perform computations in parallel.

Indices of weak learners in the ensemble to use in `resubLoss`, specified as a vector of positive integers in the range [1:`ens.NumTrained`]. By default, all learners are used.

Example: `Learners=[1 2 4]`

Data Types: `single` | `double`

Loss function, specified as `"mse"` (mean squared error) or as a function handle. If you pass a function handle `fun`, `resubLoss` calls it as

`fun(Y,Yfit,W)`

where `Y`, `Yfit`, and `W` are numeric vectors of the same length.

• `Y` is the observed response.

• `Yfit` is the predicted response.

• `W` is the observation weights.

The returned value of `fun(Y,Yfit,W)` must be a scalar.

Example: `LossFun="mse"`

Example: `LossFun=@Lossfun`

Data Types: `char` | `string` | `function_handle`

Aggregation level for the output, specified as `"ensemble"`, `"individual"`, or `"cumulative"`.

ValueDescription
`"ensemble"`The output is a scalar value, the loss for the entire ensemble.
`"individual"`The output is a vector with one element per trained learner.
`"cumulative"`The output is a vector in which element `J` is obtained by using learners `1:J` from the input list of learners.

Example: `Mode="individual"`

Data Types: `char` | `string`

Flag to run in parallel, specified as a numeric or logical `1` (`true`) or `0` (`false`). If you specify `UseParallel=true`, the `resubLoss` function executes `for`-loop iterations by using `parfor`. The loop runs in parallel when you have Parallel Computing Toolbox™.

Example: `UseParallel=true`

Data Types: `logical`

## Examples

expand all

Find the mean-squared difference between resubstitution predictions and training data.

Load the `carsmall` data set and select horsepower and vehicle weight as predictors.

```load carsmall X = [Horsepower Weight];```

Train an ensemble of regression trees, and find the mean-squared difference of predictions from the training data.

```ens = fitrensemble(X,MPG); MSE = resubLoss(ens) ```
```MSE = 0.5836 ```

## Version History

Introduced in R2011a