Compact a Classifica​tionPartit​ionedModel

조회 수: 13 (최근 30일)
Christopher Greulich
Christopher Greulich 2020년 2월 8일
답변: Omega 2025년 5월 13일
I'm training several cross fold validated classification models on the same input data. I want to save the trained models but each model redunantly saves a copy of the training data in addition to my out of band copy which makes the mat files unmangable.
I've tried
>>compact(trainedClassifers.ctree)
Undefined function 'compact' for input arguments of type 'classreg.learning.partition.ClassificationPartitionedModel'.
I've also tried
>>trainedClassifers.ctree.X = {}
You cannot set the read-only property 'X' of ClassificationPartitionedModel.
Error in classreg.learning.internal.DisallowVectorOps/subsasgn (line 34)
[varargout{1:nargout}] = builtin('subsasgn',this,s,data);
34 [varargout{1:nargout}] = builtin('subsasgn',this,s,data);
Is there some way I'm unaware of?

답변 (1개)

Omega
Omega 2025년 5월 13일
Hi Christopher,
It looks like you're trying to save your trained classification models without including the redundant training data. Unfortunately, the "compact" function isn't available for "ClassificationPartitionedModel" objects, and the "X" property is read-only.
As a workaround, you can extract the trained models from the partitioned model and compact each of them individually. For example:
trainedModel = trainedClassifiers.ctree.Trained{1}; % Extract the trained model
compactModel = compact(trainedModel); % Compact the model
Now, "compactModel" contains a compacted version of your model, without the training data. Instead of saving the entire "ClassificationPartitionedModel", save the compacted models:
save('compactModel.mat', 'compactModel');
I hope it helps!

카테고리

Help CenterFile Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by