如何使用 Matlab fitcensemble 控制树弱学习器的深度
Posted
技术标签:
【中文标题】如何使用 Matlab fitcensemble 控制树弱学习器的深度【英文标题】:How to control depth of tree weaklearner with Matlab's fitensemble 【发布时间】:2013-10-04 16:51:15 【问题描述】:我正在对具有 8 个特征和 5000 个样本的数据使用 Matlab 的 fitensemble 函数。 使用以下命令,我可以训练模型:
ada= fitensemble(datafeatures,dataclass,'AdaBoostM1',200,'tree');
我的问题:我怎样才能用一个分裂(两个叶子而不是很多叶子)创建弱学习器?
我知道以下命令控制树的创建方式:
t = ClassificationTree.template
,但我只看到树深度的最小参数。如何设置上限?
【问题讨论】:
【参考方案1】:使用它:
t = templateTree('minleaf',5);
ens = fitensemble(X,Y,'AdaBoostM2',50,t);
你可以看到:
http://www.mathworks.com/help/stats/ensemble-methods.html
【讨论】:
【参考方案2】:通过以下三个参数,您可以控制树的深度或叶子。
1- MaxNum:为 MaxNumSplits 设置一个较大的值以获得深度树
2- MinLeaf:设置较小的 MinLeafSize 值以获得深度树
3- MinParent:设置较小的 MinParentSize 值以获得深度树
这是一种设置它们的方法。假设您使用 AdaBoost 解决多分类问题。
DTree = templateTree('MinLeaf',1,'MinParent',4);
Ensemble=fitensemble(Train,Respones,'AdaBoostM2',500,DTree);
查看此链接了解更多详情:
http://au.mathworks.com/help/stats/classification-trees-and-regression-trees.html#bsw6baj
【讨论】:
以上是关于如何使用 Matlab fitcensemble 控制树弱学习器的深度的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有matlab的labview中使用matlab源代码?
如何在从 Matlab 调用的 mex 函数中使用 Matlab 引擎
如何将结构从 Matlab 代码转换为 C 代码(使用 Matlab 编译器)