compact
Reduce size of machine learning model
Syntax
Description
returns a compact model (CompactMdl
= compact(Mdl
)CompactMdl
), the compact version of the trained machine learning modelMdl
。
CompactMdl
does not contain the training data, whereasMdl
contains the training data in itsX
andY
properties. Therefore, although you can predict class labels usingCompactMdl
, you cannot perform tasks such as cross-validation with the compact model.
Examples
Reduce Size of Naive Bayes Classifier
Reduce the size of a full naive Bayes classifier by removing the training data. Full naive Bayes classifiers hold the training data. You can use a compact naive Bayes classifier to improve memory efficiency.
Load theionosphere
data set. Remove the first two predictors for stability.
loadionosphereX = X(:,3:end);
Train a naive Bayes classifier using the predictorsX
and class labelsY
。推荐的做法是指定类names.fitcnb
assumes that each predictor is conditionally and normally distributed.
Mdl = fitcnb(X,Y,'ClassNames',{'b','g'})
Mdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 351 DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell} Properties, Methods
Mdl
is a trainedClassificationNaiveBayes
classifier.
Reduce the size of the naive Bayes classifier.
CMdl = compact(Mdl)
CMdl = CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell} Properties, Methods
CMdl
is a trainedCompactClassificationNaiveBayes
classifier.
Display the amount of memory used by each classifier.
whos('Mdl','CMdl')
Name Size Bytes Class Attributes CMdl 1x1 15060 classreg.learning.classif.CompactClassificationNaiveBayes Mdl 1x1 111190 ClassificationNaiveBayes
The full naive Bayes classifier (Mdl
) is more than seven times larger than the compact naive Bayes classifier (CMdl
).
To label new observations efficiently, you can removeMdl
from the MATLAB® Workspace, and then passCMdl
and new predictor values topredict
。
Reduce Size of SVM Classifier
Reduce the size of a full support vector machine (SVM) classifier by removing the training data. Full SVM classifiers (that is,ClassificationSVM
classifiers) hold the training data. To improve efficiency, use a smaller classifier.
Load theionosphere
data set.
loadionosphere
Train an SVM classifier. Standardize the predictor data and specify the order of the classes.
SVMModel = fitcsvm(X,Y,'Standardize',true,。..'ClassNames',{'b','g'})
SVMModel = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 351 Alpha: [90x1 double] Bias: -0.1343 KernelParameters: [1x1 struct] Mu: [0.8917 0 0.6413 0.0444 0.6011 0.1159 0.5501 ... ] Sigma: [0.3112 0 0.4977 0.4414 0.5199 0.4608 0.4927 ... ] BoxConstraints: [351x1 double] ConvergenceInfo: [1x1 struct] IsSupportVector: [351x1 logical] Solver: 'SMO' Properties, Methods
SVMModel
is aClassificationSVM
classifier.
Reduce the size of the SVM classifier.
CompactSVMModel = compact(SVMModel)
CompactSVMModel = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' Alpha: [90x1 double] Bias: -0.1343 KernelParameters: [1x1 struct] Mu: [0.8917 0 0.6413 0.0444 0.6011 0.1159 0.5501 ... ] Sigma: [0.3112 0 0.4977 0.4414 0.5199 0.4608 0.4927 ... ] SupportVectors: [90x34 double] SupportVectorLabels: [90x1 double] Properties, Methods
CompactSVMModel
is aCompactClassificationSVM
classifier.
Display the amount of memory used by each classifier.
whos('SVMModel','CompactSVMModel')
Name Size Bytes Class Attributes CompactSVMModel 1x1 31058 classreg.learning.classif.CompactClassificationSVM SVMModel 1x1 141148 ClassificationSVM
The full SVM classifier (SVMModel
) is more than four times larger than the compact SVM classifier (CompactSVMModel
).
To label new observations efficiently, you can removeSVMModel
from the MATLAB® Workspace, and then passCompactSVMModel
and new predictor values topredict
。
To further reduce the size of the compact SVM classifier, use thediscardSupportVectors
function to discard support vectors.
Reduce Size of Generalized Additive Model
Reduce the size of a full generalized additive model (GAM) for regression by removing the training data. Full models hold the training data. You can use a compact model to improve memory efficiency.
Load thecarbig
data set.
loadcarbig
SpecifyAcceleration
,Displacement
,Horsepower
, andWeight
as the predictor variables (X
) andMPG
as the response variable (Y
).
X = [Acceleration,Displacement,Horsepower,Weight]; Y = MPG;
Train a GAM usingX
andY
。
Mdl = fitrgam(X,Y)
Mdl = RegressionGAM ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' Intercept: 26.9442 IsStandardDeviationFit: 0 NumObservations: 398 Properties, Methods
Mdl
is aRegressionGAM
model object.
Reduce the size of the model.
CMdl = compact(Mdl)
CMdl = CompactRegressionGAM ResponseName: 'Y' CategoricalPredictors: [] ResponseTransform: 'none' Intercept: 26.9442 IsStandardDeviationFit: 0 Properties, Methods
CMdl
is aCompactRegressionGAM
model object.
Display the amount of memory used by each regression model.
whos('Mdl','CMdl')
Name Size Bytes Class Attributes CMdl 1x1 578163 classreg.learning.regr.CompactRegressionGAM Mdl 1x1 611957 RegressionGAM
The full model (Mdl
) is larger than the compact model (CMdl
).
To efficiently predict responses for new observations, you can removeMdl
from the MATLAB® Workspace, and then passCMdl
and new predictor values topredict
。
Input Arguments
Mdl
—Machine learning model
完整的回归模型对象|full classification model object
Machine learning model, specified as a full regression or classification model object, as given in the following tables of supported models.
Regression Model Object
Model | Full Regression Model Object |
---|---|
Gaussian process regression (GPR) model | RegressionGP |
Generalized additive model (GAM) | RegressionGAM |
Neural network model | RegressionNeuralNetwork |
Classification Model Object
Model | Full Classification Model Object |
---|---|
Generalized additive model | ClassificationGAM |
Naive Bayes model | ClassificationNaiveBayes |
Neural network model | ClassificationNeuralNetwork |
Support vector machine for one-class and binary classification | ClassificationSVM |
Output Arguments
CompactMdl
— Compact machine learning model
compact regression model object | compact classification model object
Compact machine learning model, returned as one of the compact model objects in the following tables, depending on the input modelMdl
。
Regression Model Object
Model | Full Model (Mdl ) |
Compact Model (CompactMdl ) |
---|---|---|
Gaussian process regression (GPR) model | RegressionGP |
CompactRegressionGP |
Generalized additive model | RegressionGAM |
CompactRegressionGAM |
Neural network model | RegressionNeuralNetwork |
CompactRegressionNeuralNetwork |
Classification Model Object
Model | Full Model (Mdl ) |
Compact Model (CompactMdl ) |
---|---|---|
Generalized additive model | ClassificationGAM |
CompactClassificationGAM |
Naive Bayes model | ClassificationNaiveBayes |
CompactClassificationNaiveBayes |
Neural network model | ClassificationNeuralNetwork |
CompactClassificationNeuralNetwork |
Support vector machine for one-class and binary classification | ClassificationSVM |
CompactClassificationSVM |
Extended Capabilities
GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.
Usage notes and limitations:
This function fully supports GPU arrays for a trained classification model specified as a
ClassificationSVM
object.
For more information, seeRun MATLAB Functions on a GPU(Parallel Computing Toolbox)。
Version History
Introduced in R2014a
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
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)