我正在尝试在MATLAB中使用随机森林算法进行预测。但是,我遇到了让它正常运行的问题。功能签名如下。
B = TreeBagger(NTrees,X,Y)
如果我理解正确,NTrees是要生长的树的数量,X是要素矩阵,其中一行对应于一个观察,一个对应于一个要素,Y对应的标签为X.
当使用它来执行分类时,我将选项'Method'设置为'classification'。但是,我收到以下错误消息:
无法仅使用5创建唯一的默认标签 有效数字。使用LABELS输入参数。
此处的文档http://ch.mathworks.com/help/stats/treebagger.html未指定有关LABELS命令的任何内容。有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
在不知道具体情况下Y是什么的情况下,我认为这是您错误的来源。文档说Y是一个真正的类标签数组......真正的类标签可以是数字向量,字符矩阵,字符串的向量单元数组或分类向量。
分类向量在matlab中抛出以下错误(找到此here):
function b = categorical(a,labels,levels,edges)
...
b.labels = labels;
if isnumeric(levels)
b.labels = cellstr(num2str(levels,'%0.5g'))';
if length(unique(b.labels)) < length(b.labels)
error('stats:categorical:categorical:CantInferNumericLabels', ...
['Unable to create default labels using only 5 significant ' ...
'digits.\nUse the LABELS input argument.']);
end
...
end
所以在我看来,在你的分类向量Y中,matlab无法推断数字标签,因为它们中的一些可能有超过5位有效数字。