如何在matlab中存储和检索多个决策树

Posted

技术标签:

【中文标题】如何在matlab中存储和检索多个决策树【英文标题】:how to store and retrieve multiple decision trees in matlab 【发布时间】:2015-12-03 02:42:09 【问题描述】:

我有一个 for 循环,每次都生成一个决策树,稍后在程序中我需要将所有决策树应用于测试数据(决策树没有组合成一个整体)。我试图将它们存储在结构数组中,但是当我将它们应用于测试数据时,出现以下错误:

(“struct”类型的输入参数的未定义函数“predict”。)。

我知道生成的树是一个对象,但是如何在 MATLAB 中存储和检索多个对象?

【问题讨论】:

欢迎来到 SO。请在您的代码中提供minimal reproducible example,解释为什么它不适合您以及预期结果是什么。 【参考方案1】:

通常对象数组会做(唯一的事情是类需要一个默认构造函数来分配空间)。

所以,最安全的方法是使用元胞数组。代码大致如下:

%'"N" is the size of your problem'
dtrees = cell(1,N);
for k = 1:N
        %'Create the decision tree "obj"'
        %'...'
        dtreesk = obj;
end;

%'...'

%'Later iterate in the cell array'
for k = 1:N
        obj = dtreesk;
        %'Now do stuff with "obj"'
        %'...'
end;

【讨论】:

感谢 CST-Link 的回答和示例 @HannaK 很高兴我能帮上忙。【参考方案2】:

您使用元胞数组。 http://uk.mathworks.com/help/matlab/matlab_prog/create-a-cell-array.html 他们几乎可以存储任何东西。

【讨论】:

答案的基本部分是:您使用元胞数组。它回答了“如何在 MATLAB 中存储和检索多个对象?”这个问题。链接只是对元胞数组文档的参考,以防她/他在实现中需要它。

以上是关于如何在matlab中存储和检索多个决策树的主要内容,如果未能解决你的问题,请参考以下文章

如何存储决策树

我应该如何在数据库中存储稀疏决策树(移动列表)?

Matlab中的决策树

如何在matlab中指定回归树的深度?

在 MATLAB 中修改决策树的精度

如何在一个文件中保存和检索多个 NSDictionaries