如何使用 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如何创建数组

如何在从 Matlab 调用的 mex 函数中使用 Matlab 引擎

如何将结构从 Matlab 代码转换为 C 代码(使用 Matlab 编译器)

如何在 Linux 终端中使用 MCR(Matlab 编译器运行时)运行 Matlab 文件?

MATLAB | 如何在MATLAB中使用python全部colormap配色