gpt4 book ai didi

r - 插入符号包 : Is it possible to implement my own bootstrapping method?

转载 作者:行者123 更新时间:2023-12-02 03:59:55 34 4
gpt4 key购买 nike

我正在使用 caret R 包为我的模型选择变量。使用时 rfe 命令,应该传递 rfeControl 对象,该对象具有 方法 范围。此参数的选项为 boot、cv、LOOCV 和 LOCV。由于我正在处理时间序列数据,因此我需要使用特殊的引导/交叉验证技术,因为正常技术不适用于时间序列数据(否则分布会被破坏等)。

我的问题是如何插入我自己的引导实现但仍然使用插入符号 rfe 方法,它有我需要的所有其他东西。

最佳答案

没有简单的方法。如果你研究了 rfe.default() 的代码您会注意到,在 method = "boot" 的情况下createResample()函数被使用。这是生成 bootstrap 样本的函数。类似的函数用于其他 CV 方法。

有一条艰难的路;超越create*()最合适的功能;说你想做一个块 bootstrap 或 ME bootstrap ,接管 createResample()功能及用途method = "boot" ,或者如果您想要特殊形式的简历,请使用 method = "cv"并接手 createFolds() .

您需要自己编写 create*()函数并用您的版本替换插入符号 NAMESPACE 中的那个。不容易,但非常可行。假设您自己编写 createResample()功能;首先你需要注意这个函数创建了 n = times bootstrap 样本在一个矩阵中返回这个 times列和尽可能多的行,你有样本。你需要写一个自定义createResample()返回相同对象但执行您想要使用的时间序列引导的函数。

编写该函数后,您需要将其放入 caret 命名空间,以便由 caret 包中的函数使用。为此,您使用 assignInNamespace() .假设你的新引导函数被称为 createMyResample()这是您的工作区,要将其插入插入符号命名空间,请执行以下操作:

assignInNamespace("createResample", createMyResample, ns = "caret")

抱歉,我不能说得更具体,但您没有说您希望如何执行 bootstrap /CV,也没有说您想使用什么 R 代码来进行重采样。如果您提供有关如何进行重采样的更多详细信息,我会再看一看,看看我是否可以帮助您编写 create*()功能。

如果这一切都失败了,请联系 caret 的作者和维护者 Max Kuhn;他或许可以提供进一步的建议,或者至少您可以建议将此功能作为 future 版本的愿望 list 。

关于r - 插入符号包 : Is it possible to implement my own bootstrapping method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11006007/

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