我在Matlab上使用Treebagger()
在一个非常大的数据集上训练一个随机森林。内存是一个问题,我看到返回的Treebagger类包含了许多我认为对predict()
另一个数据集不必要的事情的数据。例如。该类包括使用大量内存的整个训练数据(字段X和Y)。
那我如何从Treebagger类中删除一个字段?使用rmfield(class,'X')
或class.X = [];
无效。
或者这是一个非常糟糕的想法?
答案 0 :(得分:2)
ms-DetailsRow: hover {
background-color: #cbcbcb !important;
}
是只读字段,无法设置或删除。有X
方法与compact
相关联,可以创建原始对象的缩小版本。
例如,
TreeBagger()
使用load fisheriris
rng(1); % For reproducibility
Mdl = TreeBagger(50,meas,species,'OOBPrediction','On','Method','classification');
cMdl = Mdl.compact();
whos Mdl cMdl
如果您查看压缩对象Name Size Bytes Class Attributes
Mdl 1x1 488373 TreeBagger
cMdl 1x1 452586 CompactTreeBagger
,则无法在其中找到培训数据cMdl
和X
。