Matlab:从TreeBagger类中删除字段以节省内存

时间:2017-05-16 15:32:20

标签: matlab

我在Matlab上使用Treebagger()在一个非常大的数据集上训练一个随机森林。内存是一个问题,我看到返回的Treebagger类包含了许多我认为对predict()另一个数据集不必要的事情的数据。例如。该类包括使用大量内存的整个训练数据(字段X和Y)。

那我如何从Treebagger类中删除一个字段?使用rmfield(class,'X')class.X = [];无效。

或者这是一个非常糟糕的想法?

1 个答案:

答案 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 ,则无法在其中找到培训数据cMdlX