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

标签 r

我正在使用 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/

相关文章:

r - Windows 7 上内联函数的 doParallel 问题(适用于 Linux)

r - 如何将直方图和密度图与 Y 轴上的数字而不是密度重叠

wordpress - 使用R博客:将R嵌入博客文章的简便方法?

r - 在google colab中安装 "TopicModels"包时出错

r - <我的</code> : object of type 'closure' is not subsettable 错误

r - 如何检查 data.table 键是否正常工作以及为什么不能正常工作?

r - 代码在 R 中显示为注释?

r - 增加线图中线的最大宽度

R:给定列位置信息,替换不同列中的数据元素

r - 在 ggplot2 中调用 geom 中的 alpha 参数时,如何更改连续比例图例的透明度?