当前位置: 首页 > 工具软件 > Matlab4CRE > 使用案例 >

%0.5g matlab,关于使用MATLAB的随机森林:使用MATLAB的随机森林-“无法仅使用5个有效数字来创建唯一的默认标签。”...

俞涵涤
2023-12-01

我正在尝试使用MATLAB中的随机森林算法进行预测。 但是,我在使它正确运行方面遇到问题。 功能签名如下。

B = TreeBagger(NTrees,X,Y)

如果我正确理解这一点,则NTrees是要放置的树的数量,X是要素矩阵,其中一行对应于一个观测值,一个列对应于一个要素,Y则对应于X的标签。

使用它执行分类时,我将选项"方法"设置为"分类"。 但是,我收到以下错误消息:

Unable to create unique default labels using only 5

significant digits. Use the LABELS input argument.

http://ch.mathworks.com/help/stats/treebagger.html此处的文档未指定有关LABELS命令的任何内容。 有人可以帮我解决这个问题吗?

从显示的文档中,Y看起来像是用于分类的真实类标签或用于回归的数字函数值的数组。 我认为问题是Y。Y中包含什么?

不知道在您的特定情况下Y是什么,我认为这是您错误的根源。 文档说Y是真实类标签的数组...真实类标签可以是数字矢量,字符矩阵,字符串的矢量单元格数组或分类矢量。

分类向量在matlab中引发以下错误(在此处找到此错误):

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.

Use the LABELS input argument.']);

end

...

end

所以在我看来,就像您的分类向量Y一样,matlab无法推断数字标签,因为它们中有些可能具有5个以上的有效数字。

是的,这就是问题所在。 向量Y包含其标签的值大于可以用5位数字表示的类的类。 将它们映射到较低范围可解决此问题。

 类似资料: