我正在关注本教程,并尝试实现TreeBagger方法。我有一个问题,因为我无法理解部分代码。
b = TreeBagger(nTrees,X,Y,'oobpred','on','cat',6,'minleaf',leaf(ii));
谁能告诉我什么' cat'请问和6号?
答案 0 :(得分:1)
TreeBagger的构造函数:
% In addition to the optional arguments above, this method accepts all
% optional CLASSREGTREE arguments with the exception of 'minparent'.
% Refer to the documentation for CLASSREGTREE for more detail.
'cat'不是TreeBagger的有效输入对之一,因此它必须是CLASSREGTREE的输入。查看classregtree的输入对,接近'cat'的唯一输入对是'分类',它表示:
% 'categorical' Vector of indices of the columns of X that are to be
% treated as unordered categorical variables
如果你看一下statgetargs.m,特别是这一行:
i = strmatch(lower(pname),pnames);
只要第一部分拼写正确,它就会允许任何参数。 pnames将包含一个有效字符串的单元格数组(其中一个将是'分类'),而pname将包含一个字符串来比较pnames(最终,它将包含'cat')。如果只输入输入字符串的第一部分,它仍然有效。即对我来说,这是有效的:
EDU>> a = TreeBagger(nTrees,X,Y,'oobpr','on','cat',6,'minle',leaf(ii));
EDU>> b = TreeBagger(nTrees,X,Y,'oobpred','on','cat',6,'minleaf',leaf(ii));
EDU>> isequal(a,b)
ans =
1
如果'cat'被更改,它不起作用,因为它在TreeArgs下拼写时明确存储'cat'。无论如何,'cat'被视为classregtree的'绝对'。
答案 1 :(得分:0)
cat
被视为categorical
classregtree
输入参数的缩写,它指定X
中的第六个变量应被视为分类。< / p>