我正在对具有 8 个特征和 5000 个样本的数据使用 Matlab 的 fitensemble 函数。使用以下命令,我可以训练模型:
ada= fitensemble(datafeatures,dataclass,'AdaBoostM1',200,'tree');
我的问题:如何用一个分裂(两片叶子而不是许多叶子)创建弱学习器?我知道以下命令控制树的创建方式:
t = ClassificationTree.template
,但我只看到树深度的最小参数。如何设置上限?
我正在对具有 8 个特征和 5000 个样本的数据使用 Matlab 的 fitensemble 函数。使用以下命令,我可以训练模型:
ada= fitensemble(datafeatures,dataclass,'AdaBoostM1',200,'tree');
我的问题:如何用一个分裂(两片叶子而不是许多叶子)创建弱学习器?我知道以下命令控制树的创建方式:
t = ClassificationTree.template
,但我只看到树深度的最小参数。如何设置上限?
用它:
t = templateTree('minleaf',5);
ens = fitensemble(X,Y,'AdaBoostM2',50,t);
你可以看到:
通过以下三个参数,您可以控制树的深度或叶子。
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