【问题标题】:How to control depth of tree weaklearner with Matlab's fitensemble如何使用 Matlab fitcensemble 控制树弱学习器的深度
【发布时间】:2013-10-04 16:51:15
【问题描述】:

我正在对具有 8 个特征和 5000 个样本的数据使用 Matlab 的 fitensemble 函数。 使用以下命令,我可以训练模型:

ada= fitensemble(datafeatures,dataclass,'AdaBoostM1',200,'tree');

我的问题:我怎样才能用一个分裂(两个叶子而不是很多叶子)创建弱学习器? 我知道以下命令控制树的创建方式: t = ClassificationTree.template,但我只看到树深度的最小参数。如何设置上限

【问题讨论】:

    标签: matlab classification adaboost


    【解决方案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

      【讨论】:

        最近更新 更多