如何设置树TreeBagger参数

21日视图(30天)
费边
费边 2018年5月4日
编辑: 路易斯•巴博萨2018年11月17日
嗨。
我用TreeBagger分类,我想控制树的深度。
我读过,您可以控制使用树树的深度参数,MinLeafSize, MinParentSize MinParentSize https://la.mathworks.com/help/stats/fitctree.html bt6cr7t_sep_shared-MaxNumSplits。
TreeBagger文档中也说,它有一个论点TreeArguments接收单元阵列的参数fitctree或fitrtree。使用这些参数TreeBagger当种植新树。
我尝试设置该属性但我得到下一个错误下代码。
maxNumSplits = 3;%最大数量的决策分歧,正整数
minLeafSize = 3;%小叶子节点数的观察,正整数
minParentSize = 3;%最小数量的分支节点观察,正整数
numberPredictorsToSample = 3;%的随机特性对于每一个决定,默认= squareroot总数的特性
numTrees = 500;%标量值等于决策树的数量
treeArguments = {“MaxNumSplits”maxNumSplits,“MinLeafSize”minLeafSize,“MinParentSize”minParentSize};
射频= TreeBagger (numTrees trainingData trainingClass,“TreeArguments”,treeArguments);
我得到的错误
使用internal.stats错误。parseArgs(42)行无效的参数名称:TreeArguments。
在classreg.learning.FullClassificationRegressionModel错误。prepareDataCR(第115行)[W predictornames responsename catpreds] =…
在ClassificationTree错误。prepareData(第471行)[X, Y, W, dataSummary] =…
错误TreeBagger / init(第1190行)[bagger.X y bagger.W,装袋机。DataSummary classSummary] =…
错误TreeBagger(第531行)装袋机= init(装袋机,X, Y, makeArgs {:});
错误variabilidad(42)行射频= TreeBagger (numTrees、trainingData trainingClass, TreeArguments, templateTree);

答案(1)

路易斯•巴博萨
路易斯•巴博萨 2018年11月17日
编辑:路易斯•巴博萨 2018年11月17日
亲爱的费边,
我看到了你的代码,有一些错误。
首先,TreeBagger(函数/类)不接受作为参数“TreeArguments”。所以不可能创造一个单元阵列(代码的情况下),或一个结构和简单的通过Trebagger作为参数。
一种运行您的代码如下:
maxNumSplits = 3;%最大数量的决策分歧,正整数
minLeafSize = 3;%小叶子节点数的观察,正整数
minParentSize = 3;%最小数量的分支节点观察,正整数
numberPredictorsToSample = 3;%的随机特性对于每一个决定,默认= squareroot总数的特性
numTrees = 500;%标量值等于决策树的数量
方法=“回归”;%或“分类”
% % TreeBagger培训。
%是随机森林自numberPredictorsToSample更少
%比trainingData的输入量,用来训练射频。
%,否则,我们有一个简单的袋装的树。
%假设:
% - trainingData是一张桌子
% - y_label是一个字符串,输出的名字
射频= TreeBagger (numTrees trainingData y_label,
“方法”、方法、%你说是否回归或分类问题
“MaxNumSplits”maxNumSplits,
“MinLeafSize”minLeafSize,
“NumPredictorsToSample”,numberPredictorsToSample);
我遗漏了“MinParentSize”,因为一个错误发生了,即:
“错误使用TreeBagger / init(第1414行)
TreeBagger不接受“MinParentSize”和“SplitMin”输入参数。使用‘MinLeafSize’。”
我没有试图解决这个问题。也许,一个可能的解决办法是设置这个参数通过使用templateTree,并将其传递给TreeBagger,是这样的:
t = templateTree (“MinParentSize”、数量);
射频= TreeBagger (numTrees trainingData y_label,
“方法”、方法、%你说是否回归或分类问题
“MaxNumSplits”maxNumSplits,
“MinLeafSize”minLeafSize,
“NumPredictorsToSample”numberPredictorsToSample,
“学习者”t);%通过创建templateTree对象

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!