CompactRegressionGP
Namespace: classreg.learning.regr
Compact Gaussian process regression model class
Description
CompactRegressionGP
is a compact Gaussian process regression (GPR)
model. The compact model consumes less memory than a full model, because it does not
include the data used for training the GPR model.
Because the compact model does not include the training data, you cannot perform some
tasks, such as cross-validation, using the compact model. However, you can use the
compact model for making predictions or calculate regression loss for new data (use
predict
and loss
).
Construction
Create a CompactRegressionGP
object from a full RegressionGP
model object by using compact
.
Properties
FitMethod
— Method used to estimate the parameters
'none'
| 'exact'
| 'sd'
| 'sr'
| 'fic'
Method used to estimate the basis function coefficients, β; noise standard deviation, σ; and kernel parameters, θ, of the GPR model, stored as a character vector. It can be one of the following.
Fit Method | Description |
---|---|
'none' | No estimation. fitrgp uses
the initial parameter values as the parameter values. |
'exact' | Exact Gaussian process regression. |
'sd' | Subset of data points approximation. |
'sr' | Subset of regressors approximation. |
'fic' | Fully independent conditional approximation. |
BasisFunction
— Explicit basis function
'none'
| 'constant'
| 'linear'
| 'pureQuadratic'
| function handle
Explicit basis function used in the GPR model, stored as a character vector or a function handle. It can be one of the following. If n is the number of observations, the basis function adds the term H*β to the model, where H is the basis matrix and β is a p-by-1 vector of basis coefficients.
Explicit Basis | Basis Matrix |
---|---|
'none' | Empty matrix. |
'constant' |
H is an n-by-1 vector of 1s, where n is the number of observations. |
'linear' |
X is the expanded predictor data after
the software creates dummy variables for the categorical variables.
For details about creating dummy variables, see
|
'pureQuadratic' |
where
For this basis option, |
Function handle | Function handle, where X is an n-by-d matrix of predictors, d is the number of predictors after the software creates dummy variables for the categorical variables, and H is an n-by-p matrix of basis functions. |
Data Types: char
| function_handle
CategoricalPredictors
— Indices of categorical predictors
vector of positive integers | []
Categorical predictor
indices, specified as a vector of positive integers. CategoricalPredictors
contains index values indicating that the corresponding predictors are categorical. The index
values are between 1 and p
, where p
is the number of
predictors used to train the model. If none of the predictors are categorical, then this
property is empty ([]
).
Data Types: single
| double
Beta
— Estimated coefficients
vector
Estimated coefficients for the explicit basis functions, stored
as a vector. You can define the explicit basis function by using the BasisFunction
name-value
pair argument in fitrgp
.
Data Types: double
Sigma
— Estimated noise standard deviation
scalar value
Estimated noise standard deviation of the GPR model, stored as a scalar value.
Data Types: double
ModelParameters
— Parameters used for training
GPParams
object
Parameters used for training the GPR model, stored as a GPParams
object.
KernelFunction
— Form of the covariance function
'squaredExponential'
| 'matern32'
| 'matern52'
| 'ardsquaredexponential'
| 'ardmatern32'
| 'ardmatern52'
| function handle
Form of the covariance function used in the GPR model, stored as a character vector containing the name of the built-in covariance function or a function handle. It can be one of the following.
Function | Description |
---|---|
'squaredexponential' | Squared exponential kernel. |
'matern32' | Matern kernel with parameter 3/2. |
'matern52' | Matern kernel with parameter 5/2. |
'ardsquaredexponential' | Squared exponential kernel with a separate length scale per predictor. |
'ardmatern32' | Matern kernel with parameter 3/2 and a separate length scale per predictor. |
'ardmatern52' | Matern kernel with parameter 5/2 and a separate length scale per predictor. |
Function handle | A function handle that fitrgp can call like
this:Kmn = kfcn(Xm,Xn,theta)
where Xm is an
m-by-d matrix,
Xn is an
n-by-d matrix, and
Kmn is an
m-by-n matrix of kernel
products such that
Kmn (i,j) is
the kernel product between Xm (i,:)
and Xn (j,:). d
is the number of predictor variables after the software creates dummy
variables for the categorical variables. For details about creating
dummy variables, see CategoricalPredictors .
theta is the
r-by-1 unconstrained parameter vector for
kfcn . |
Data Types: char
| function_handle
KernelInformation
— Information about the parameters of the kernel function
structure
Information about the parameters of the kernel function used in the GPR model, stored as a structure with the following fields.
Field Name | Description |
---|---|
Name | Name of the kernel function |
KernelParameters | Vector of the estimated kernel parameters |
KernelParameterNames | Names associated with the elements of KernelParameters . |
Data Types: struct
PredictMethod
— Method used to make predictions
'exact'
| 'bcd'
| 'sd'
| 'sr'
| 'fic'
Method that predict
uses to make predictions
from the GPR model, stored as a character vector. It can be one of
the following.
PredictMethod | Description |
---|---|
'exact' | Exact Gaussian process regression |
'bcd' | Block Coordinate Descent |
'sd' | Subset of Data points approximation |
'sr' | Subset of Regressors approximation |
'fic' | Fully Independent Conditional approximation |
Alpha
— Weights
numeric vector
Weights used to make predictions from the trained GPR model,
stored as a numeric vector. predict
computes the
predictions for a new predictor matrix Xnew
by
using the product
is the matrix of kernel products between and active set vector A and α is a vector of weights.
Data Types: double
ResponseTransform
— Transformation applied to predicted response
'none'
(default)
Transformation applied to the predicted response, stored as a character vector describing how
the response values predicted by the model are transformed. In RegressionGP
, ResponseTransform
is
'none'
by default, and RegressionGP
does not use ResponseTransform
when
making predictions.
ActiveSetVectors
— Subset of training data
matrix
Subset of training data used to make predictions from the GPR model, stored as a matrix.
predict
computes the predictions for a new
predictor matrix Xnew
by using the product
is the matrix of kernel products between and active set vector A and α is a vector of weights.
ActiveSetVectors
is equal to the training
data X
for exact GPR fitting and a subset of
the training data X
for sparse GPR methods. When
there are categorical predictors in the model, ActiveSetVectors
contains
dummy variables for the corresponding predictors.
Data Types: double
ActiveSetMethod
— Method used to select the active set
'sgma'
| 'entropy'
| 'likelihood'
| 'random'
Method used to select the active set for sparse methods
('sd'
,'sr'
, or 'fic'
),
stored as a character vector. It can be one of the following.
ActiveSetMethod | Description |
---|---|
'sgma' | Sparse greedy matrix approximation |
'entropy' | Differential entropy-based selection |
'likelihood' | Subset of regressors log likelihood-based selection |
'random' | Random selection |
The selected active set is used in parameter estimation or prediction,
depending on the choice of FitMethod
and PredictMethod
in
fitrgp
.
ActiveSetSize
— Size of the active set
integer value
Size of the active set for sparse methods ('sd'
,'sr'
,
or 'fic'
), stored as an integer value.
Data Types: double
Object Functions
lime | Local interpretable model-agnostic explanations (LIME) |
loss | Regression error for Gaussian process regression model |
partialDependence | Compute partial dependence |
plotPartialDependence | Create partial dependence plot (PDP) and individual conditional expectation (ICE) plots |
predict | Predict response of Gaussian process regression model |
shapley | Shapley values |
Examples
Compute Predictions and Regression Loss for Test Data
Generate example training data.
rng(1) % For reproducibility
n = 100000;
X = linspace(0,1,n)';
X = [X,X.^2];
y = 1 + X*[1;2] + sin(20*X*[1;-2]) + 0.2*randn(n,1);
Train a GPR model using the subset of regressors ('sr'
) approximation method and predict using the subset of data ('sd'
) method. Use 50 points in the active set and sparse greedy matrix approximation ('sgma'
) method for active set selection. Because the scales of the first and second predictors are different, it is good practice to standardize the data.
gprMdl = fitrgp(X,y,'KernelFunction','squaredExponential','FitMethod', ... 'sr','PredictMethod','sd','Basis','none','ActiveSetSize',50, ... 'ActiveSetMethod','sgma','Standardize',1,'KernelParameters',[1;1]);
fitrgp
accepts any combination of fitting, prediction, and active set selection methods. In some cases it might not be possible to compute the standard deviations of the predicted responses, hence the prediction intervals. See Tips. And, in some cases, using the exact method might be expensive because of the size of the training data.
Create a compact GPR object.
cgprMdl = compact(gprMdl);
Generate the test data.
n = 4000; Xnew = linspace(0,1,n)'; Xnew = [Xnew,Xnew.^2]; ynew = 1 + Xnew*[1;2] + sin(20*Xnew*[1;-2]) + 0.2*randn(n,1);
Use the compact object to predict the response in test data and the prediction intervals.
[ypred,~,yci] = predict(cgprMdl,Xnew);
Plot the true response, predicted response, and prediction intervals.
figure plot(ynew,'r') hold on plot(ypred,'b') plot(yci(:,1),'k--') plot(yci(:,2),'k--') legend('True responses','GPR predictions','95% prediction limits','Location','Best') xlabel('x') ylabel('y') hold off
Compute the mean squared error loss on the test data using the trained GPR model.
L = loss(cgprMdl,Xnew,ynew)
L = 0.0497
Copy Semantics
Value. To learn how value classes affect copy operations, see Copying Objects.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
The
predict
function supports code generation.
For more information, see Introduction to Code Generation.
Version History
Introduced in R2015b
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.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)