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

我正在尝试使用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位数字表示的类的类。 将它们映射到较低范围可解决此问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值