kfoldPredict

Predict responses for observations in cross-validated regression model

Syntax

``yfit = kfoldPredict(CVMdl)``
``yfit = kfoldPredict(CVMdl,'IncludeInteractions',includeInteractions)``

Description

example

````yfit = kfoldPredict(CVMdl)` returns responses predicted by the cross-validated regression model `CVMdl`. For every fold, `kfoldPredict` predicts the responses for validation-fold observations using a model trained on training-fold observations. `CVMdl.X` and `CVMdl.Y` contain both sets of observations.```
````yfit = kfoldPredict(CVMdl,'IncludeInteractions',includeInteractions)` specifies whether to include interaction terms in computations. This syntax applies only to generalized additive models.```

Examples

collapse all

When you create a cross-validated regression model, you can compute the mean squared error (MSE) by using the `kfoldLoss` object function. Alternatively, you can predict responses for validation-fold observations using `kfoldPredict` and compute the MSE manually.

Load the `carsmall` data set. Specify the predictor data `X` and the response data `Y`.

```load carsmall X = [Cylinders Displacement Horsepower Weight]; Y = MPG;```

Train a cross-validated regression tree model. By default, the software implements 10-fold cross-validation.

```rng('default') % For reproducibility CVMdl = fitrtree(X,Y,'CrossVal','on');```

Compute the 10-fold cross-validation MSE by using `kfoldLoss`.

`L = kfoldLoss(CVMdl)`
```L = 29.4963 ```

Predict the responses `yfit` by using the cross-validated regression model. Compute the mean squared error between `yfit` and the true responses `CVMdl.Y`. The computed MSE matches the loss value returned by `kfoldLoss`.

```yfit = kfoldPredict(CVMdl); mse = mean((yfit - CVMdl.Y).^2)```
```mse = 29.4963 ```

Input Arguments

collapse all

Cross-validated partitioned regression model, specified as a `RegressionPartitionedModel`, `RegressionPartitionedEnsemble`, `RegressionPartitionedGAM`, or `RegressionPartitionedSVM` object. You can create the in two ways:

• Pass a trained regression model listed in the following table to its `crossval` object function.

• Train a regression model using a function listed in the following table and specify one of the cross-validation name-value arguments for the function.

Flag to include interaction terms of the model, specified as `true` or `false`. This argument is valid only for a generalized additive model (GAM). That is, you can specify this argument only when `CVMdl` is `RegressionPartitionedGAM`.

The default value is `true` if the models in `CVMdl` (`CVMdl.Trained`) contain interaction terms. The value must be `false` if the models do not contain interaction terms.

Data Types: `logical`

Output Arguments

collapse all

Predicted responses, returned as an n-by-1 numeric vector, where n is the number of observations. (n is `size(CVMdl.X,1)` when observations are in rows.) Each entry of `yfit` corresponds to the predicted response for the corresponding row of `CVMdl.X`.

If you use a holdout validation technique to create `CVMdl` (that is, if `CVMdl.KFold` is `1`), then `yfit` has `NaN` values for training-fold observations.

Introduced in R2011a