强制结构决策树

发布于 2025-01-05 10:26:48 字数 424 浏览 0 评论 0原文

我一直在 R 中使用决策树(CART),使用 rpart 包来查看 SST(预测变量)和气候(预测变量)之间的关系。

我想“强制”树进入特定的结构 - 即在预测变量 1 上分割,然后在变量 2 上分割。

我已经使用 R 一段时间了,所以我认为我能够查看 rpart 函数背后的代码并修改它以首先在特定预测变量中搜索“最佳分割”。然而,rpart 函数调用 C 例程,并且没有任何 CI 经验,所以在这里迷失了……

我可以从头开始编写一个函数,但如果可能的话,希望避免它!所以我的问题是:

  • 是否还有另一种决策树技术(在 R 中实现) 最好)您可以在其中强制树的结构?
  • 如果没有 - 有什么方法可以将 C 代码转换为 R 代码吗?
  • 还有其他想法吗?

提前致谢,非常感谢您的帮助。

I have been using decision trees (CART) in R using the rpart package to look at the relationship between SST (predictor variables) and climate (predictand variable).

I would like to "force" the tree into a particular structure - i.e. split on predictor variable 1, then on variable 2.

I've been using R for a while so I thought I'd be able to look at the code behind the rpart function and modify it to search for 'best splits' in a particular predictor variable first. However the rpart function calls C routines and not having any experience with C I get lost here...

I could write a function from scratch but would like to avoid it if possible! So my questions are:

  • Is there another decision tree technique (implemented in R
    preferably) in which you can force the structure of the tree?
  • If not - is there some way I could convert the C code to R?
  • Any other ideas?

Thanks in advance, and help is much appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笑看君怀她人 2025-01-12 10:26:48

当您的数据指示具有已知结构的树时,请使用 newick 或 nexus 文件格式将该结构呈现给 R。然后,您可以使用 Phylo 包中的 read.tree 或 read.nexus 读取该结构。

When your data indicates a tree with a known structure, present that structure to R using either a newick or nexus file format. Then you can read in the structure using either read.tree or read.nexus from Package Phylo.

长梦不多时 2025-01-12 10:26:48

也许你应该看看

文档中的rpartmethod形式参数:

...“method”可以是名为“init”、“split”和“eval”的函数列表。源文件“tests/usersplits.R”中给出了示例。

Maybe you should look at the method formal parameter of rpart

In the documentation :

... ‘method’ can be a list of functions named ‘init’, ‘split’ and ‘eval’. Examples are given in the file ‘tests/usersplits.R’ in the sources.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文