任何想法如何创建一个决策树桩用于在Matlab中进行提升?我的意思是,有一些参数可以发送给classregree,以确保我只有1级?我尝试修剪,并不总是给一个树桩(单剪)。有时我只能得到2个切割(不平衡的树)。创建一个树桩Matlab
我知道ClassificationTree.template和fitensemble函数,但我想写我自己的boosting算法,以便将它用于LDA或其他非fitensemble提供的分类器。
感谢
任何想法如何创建一个决策树桩用于在Matlab中进行提升?我的意思是,有一些参数可以发送给classregree,以确保我只有1级?我尝试修剪,并不总是给一个树桩(单剪)。有时我只能得到2个切割(不平衡的树)。创建一个树桩Matlab
我知道ClassificationTree.template和fitensemble函数,但我想写我自己的boosting算法,以便将它用于LDA或其他非fitensemble提供的分类器。
感谢
我相信你可以设置minparent
参数等同于你的意见数量。使用虹膜示例数据:
>> 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
不知道,但它可能会更快,最终手工编码它 - 尤其是如果你反正结合其他自定义代码。祝你好运!
如果t1
是你的树,由classregtree
返回的,我想你可以创建一个决策残端t2
用命令
t2 = prune(t1, 'level', max(prunelist(t1)-1));
这是否你需要什么?
那么1-它效率不高,2-发生的情况是,如果树不平衡,修剪可能会偏向另一边,所以我最终得到一棵树,左边的分支中有一个分支,但没有右边的分支,如果我增加了1个级别,最后我得到了根节点。不知道是否合并离开会解决这个问题。还是)感谢你的建议 :-) – omarzouk
非常感谢,它效果很好。 – omarzouk
实际上,它有时并不会完全切断,即树只由根节点组成:S – omarzouk
嗯......有一个小例子可以发布吗?如果不是,请尝试通过http://www.mathworks.com/help/toolbox/stats/classregtree.html上的其他选项进行操作。举一个例子,如果风险相等,并且mergeleaves处于默认状态(“on”),那么我认为不会有任何削减。 –