loss
R2026bRegression error for regression ensemble model
Description
returns the mean squared error L = loss(ens,tbl,ResponseVarName)L between the predictions of
ens to the data in tbl, compared to the
true responses tbl.ResponseVarName. The interpretation of
L depends on the loss function
(LossFun) and weighting scheme
(Weights). In general, better regression models yield
smaller loss values. The formula for loss is described in the
section Weighted Mean Squared Error.
specifies options using one or more name-value arguments in addition to any of the
input argument combinations in the previous syntaxes. For example, you can specify
the loss function, the aggregation level for output, and whether to perform
calculations in parallel.L = loss(___,Name=Value)
Examples
Find the loss of an ensemble predictor using the carsmall data set.
Load the carsmall data set and select engine displacement, horsepower, and vehicle weight as predictors.
load carsmall
X = [Displacement Horsepower Weight];Train an ensemble of regression trees and find the regression error for predicting MPG.
ens = fitrensemble(X,MPG); L = loss(ens,X,MPG)
L = 0.3463
Input Arguments
Regression ensemble model, specified as a RegressionEnsemble or RegressionBaggedEnsemble model object trained with fitrensemble, or a CompactRegressionEnsemble model object created with compact.
Sample data, specified as a table. Each row of tbl corresponds to
one observation, and each column corresponds to one predictor variable.
tbl must contain all of the predictors used to train the model.
Multicolumn variables and cell arrays other than cell arrays of character vectors are
not allowed.
If you trained ens using sample data contained in a table, then
the input data for loss must also be in a table.
Data Types: table
Response variable name, specified as the name of a variable in
tbl. The response variable must be a numeric
vector.
You must specify ResponseVarName as a character
vector or string scalar. For example, if the response variable
Y is stored as tbl.Y, then specify
it as "Y". Otherwise, the software treats all columns of
tbl, including Y, as predictors.
Data Types: char | string
Response data, specified as a numeric column vector with the same number
of rows as tbl or X. Each entry in
Y is the true response to the data in the
corresponding row of tbl or X.
The software treats NaN values in Y
as missing values. Observations with missing values for Y
are not used in the loss calculation.
Data Types: double | single
Predictor data, specified as a numeric matrix.
Each row of X corresponds to one observation, and each column
corresponds to one variable. The variables in the columns of X must
be the same as the variables used to train ens.
The number of rows in X must equal the number of rows in
Y.
If you trained ens using sample data contained in a matrix, then
the input data for loss must also be in a matrix.
Data Types: double | single
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: loss(Mdl,X,Learners=[1 2 4],UseParallel="auto") specifies
to use the first, second, and fourth weak learners in the ensemble, and to perform
computations in parallel.
Indices of the weak learners in the ensemble to use with
loss, specified as a
vector of positive integers in the range
[1:ens.NumTrained]. By default,
the function uses all learners.
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, loss calls it as
fun(Y,Yfit,W)
where Y, Yfit, and W are
numeric vectors of the same length.
Yis the observed response.Yfitis the predicted response.Wis 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".
| Value | Description |
|---|---|
"ensemble" | The output is a scalar value 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
Option to perform computations in parallel using a parallel pool of workers, specified as one of these values:
"off"— Run in serial on the MATLAB® client."auto"— Use a parallel pool if one is open or if MATLAB can automatically create one. If a parallel pool is not available, run in serial on the MATLAB client."on"— Use a parallel pool if one is open or if MATLAB can automatically create one. If a parallel pool is not available, throw an error.
If you do not have a parallel pool open and automatic pool creation is enabled, MATLAB opens a pool using the default cluster profile. To use a parallel pool to run computations in MATLAB, you must have Parallel Computing Toolbox™. For more information, see Run MATLAB Functions with Automatic Parallel Support (Parallel Computing Toolbox).
Before R2026b: To run in parallel, set
UseParallel to true.
Example: UseParallel="auto"
Data Types: char | string
Observation weights, specified as a numeric vector or the name of a
variable in tbl. The software weighs the
observations in each row of X or
tbl with the corresponding weight in
Weights. The formula for loss
with Weights is described in the section Weighted Mean Squared Error.
If you specify Weights as a numeric vector, then
the size of Weights must be equal to the number of
rows in X or tbl.
If you specify Weights as the name of a variable
in tbl, you must do so as a character vector or
string scalar. For example, if the weights are stored as
tbl.W, then specify Weights as
"W". Otherwise, the software treats all columns
of Tbl, including tbl.W, as
predictors.
If you do not specify your own loss function, then the software
normalizes Weights to sum up to 1.
Example: Weights="W"
Data Types: single | double | char | string
More About
Let n be the number of rows of data,
xj be the jth
row of data, yj be the true response to
xj, and let
f(xj) be the
response prediction of ens to
xj. Let w be
the vector of weights (all one by default).
First the weights are divided by their sum so they add to one: w→w/Σw. The mean squared error L is
Extended Capabilities
Usage notes and limitations:
You cannot use the
UseParallelname-value argument with tall arrays.
For more information, see Tall Arrays.
The loss function has automatic parallel support. To run
computations in parallel, set the UseParallel argument to
"on" or "auto".
For more information, see Run MATLAB Functions with Automatic Parallel Support (Parallel Computing Toolbox).
You cannot use the UseParallel name-value
argument with tall arrays, GPU arrays, or code generation.
Usage notes and limitations:
The
lossfunction does not support ensembles trained using decision tree learners with surrogate splits.You cannot use
UseParallelwith GPU arrays.
For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Version History
Introduced in R2011aThe UseParallel name-value argument now accepts
"off", "auto", or "on" values
instead of true or false. This change gives you more
control over when to use a parallel pool for parallel execution. Specifying the
UseParallel name-value argument as true or
false is not recommended.
This table shows how to update your code depending on your goal.
| Goal | Not Recommended | Recommended |
|---|---|---|
Write code that runs on the MATLAB client. |
UseParallel=false
|
UseParallel="off"
|
| Write portable code that runs on a parallel pool and, if a pool is not available, runs on the MATLAB client. |
UseParallel=true
|
UseParallel="auto"
|
| Write code that runs on a parallel pool and errors if a pool is not available. | N/A |
UseParallel="on"
|
There are no plans to remove support for the true or
false values.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)