gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 20:05:41 24 4
gpt4 key购买 nike

我使用 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,它与 tree 相同,除了 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 因此您应该能够找到结果树被设置为 private 的点,然后可以将其更改为 public

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

  • 最后一个建议是自己实现它,注意您不需要编写一个非常通用的方法,只需编写一个可以解决您的问题的方法。这可以是任何语言。

如开头所说,我希望有人比我幸运,尽管我对此表示高度怀疑,因为似乎 Mathworks 已经做了很多工作来阻止你 - 也许有一个漏洞,但我不知道.

关于matlab - 在 MATLAB 中修改决策树的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49697471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com