我在具有8个特征和5000个样本的数据上使用Matlab的fitensemble函数。 通过以下命令,我可以训练模型:
ada= fitensemble(datafeatures,dataclass,'AdaBoostM1',200,'tree');
我的问题:如何用一个单独的分割(两片叶子而不是多片叶子)创建弱学习者?
我知道以下命令控制树的创建方式:
t = ClassificationTree.template
,但我只看到树深度的最小参数。如何设置上限限制?
答案 0 :(得分:0)
使用它:
t = templateTree('minleaf',5);
ens = fitensemble(X,Y,'AdaBoostM2',50,t);
你可以看到:
答案 1 :(得分:0)
使用以下三个参数,您可以控制树的深度或树状。
1- MaxNum:为MaxNumSplits设置一个较大的值以获得深树
2- MinLeaf:设置MinLeafSize的小值以获得深树
3- MinParent:设置较小的MinParentSize值以获得深树
这是一种可以设置它们的方法。假设您使用AdaBoost进行多分类问题。
DTree = templateTree(' MinLeaf',' MinParent',4);
合奏= fitensemble(列车,阶跃响应,' AdaBoostM2' 500,DTREE);
查看此链接以获取更多详细信息:
http://au.mathworks.com/help/stats/classification-trees-and-regression-trees.html#bsw6baj