3

关于如何在 Matlab 中创建用于提升的决策树桩的任何想法?我的意思是我可以发送一些参数到 classregtree 以确保我最终只有 1 个级别?我试过修剪,但它并不总是给树桩(单剪)。有时我只能得到 2 个切口(不平衡的树)。

我知道 ClassificationTree.template 和 fitensemble 函数,但我想编写自己的提升算法以将其与 LD​​A 或 fitensemble 未提供的其他分类器一起使用。

谢谢

4

2 回答 2

4

我相信您可以将minparent参数设置为等于您的观察次数。使用 iris 示例数据:

>> load fisheriris;
>> t = classregtree(meas,species,...
                 'names',{'SL' 'SW' 'PL' 'PW'}, 'minparent', 150)

t = 

Decision tree for classification
1  if PL<2.45 then node 2 elseif PL>=2.45 then node 3 else setosa
2  class = setosa
3  class = versicolor

不确定,但最终手动编码可能会更快 - 特别是如果您无论如何都要合并其他自定义代码。祝你好运!

于 2011-12-06T16:16:15.143 回答
0

如果t1是您的树,由 返回,我认为您可以使用命令classregtree创建决策树桩t2

t2 = prune(t1, 'level', max(prunelist(t1)-1));

这能满足你的需要吗?

于 2011-12-07T09:45:07.807 回答