matlab精度更改,在MATLAB中修改决策树的精度

我使用fitrtree创建了一个回归树

我想采取CutPoint等参数并降低精度,如下所示:

tree.CutPoint=round(tree.CutPoint,5);

但我不能这样做,因为CutPoint被设置为只读,我想要修改它或者创建一个与这个基本相同的树,但是要进行这些修改.遗憾的是,文档仅通过fitrtree函数显示构造函数.是否有可能做到这一点?如果是的话,怎么样?

最佳答案 这只是部分暗示性的解决方案.我希望其他人能提出更好的解决方案.

无效的解决方案:

通常,每当出现这样的问题时,(繁琐)解决方案是找到类的构造函数,然后给构造函数提供所有字段,包括你的round(tree.CutPoint,5)作为CutPoint,即这样的东西

NewTree = RegressionTree('X',tree.X,'Y',tree.Y,...,'CutPoint',round(tree.CutPoint,5),...)

理论上应该创建一个新树,NewTree与树相同,除了CutPoint已被舍入.

但是,查看构造函数的文档(或帮助中心)

An object of this class cannot be created by calling the constructor. Use FITRTREE to create a RegressionTree object by fitting the tree to training data.

所以这种方法也行不通.然后我尝试在类的层次结构中进一步研究,看看是否可以用这些方法做到这一点然后向下发展,这也不是(我能找到的)可能的.

我的建议:

似乎Mathworks已经花了很长时间来确保我们不会篡改生成的树.因此,我的基本建议是不使用这种方法.但是,这可以通过以下几种方式完成:

>似乎所有用于构建树的代码都可用,如果您输入例如编辑RegressionTree,因此您应该能够找到结果树设置为私有的点,然后可以将其更改为public.

>如果您不想更改现有的Matlab代码,那么Kota Hara已经自己实现了binary regression trees,您可以试试.

>最后一个建议是自己实现它,并指出你不需要编写一个非常通用的方法来解决你的问题.这可以是任何语言.

正如一开始所说,我希望有人比我更幸运,虽然我高度怀疑它似乎Mathworks已经做了很多工作来阻止你 – 也许有一个漏洞,但我不知道.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值