加快随机森林速度的建议

2024-04-06

我正在做一些工作randomForest包,虽然效果很好,但可能很耗时。有人对加快速度有什么建议吗?我使用的是带有双核 AMD 芯片的 Windows 7 盒子。我知道 R 不是多线程/处理器,但很好奇是否有任何并行包(rmpi, snow, snowfall等)曾工作过randomForest东西。谢谢。

EDIT:

我正在使用 rF 进行一些分类工作(0 和 1)。数据大约有 8-12 个变量列,训练集是 10k 行的样本,因此它的大小不错,但并不疯狂。我正在运行 500 棵树,并尝试 2、3 或 4 棵树。

编辑2: 这是一些输出:

> head(t22)
  Id Fail     CCUse Age S-TFail         DR MonInc #OpenLines L-TFail RE M-TFail Dep
1  1    1 0.7661266  45       2 0.80298213   9120         13       0  6       0   2
2  2    0 0.9571510  40       0 0.12187620   2600          4       0  0       0   1
3  3    0 0.6581801  38       1 0.08511338   3042          2       1  0       0   0
4  4    0 0.2338098  30       0 0.03604968   3300          5       0  0       0   0
5  5    0 0.9072394  49       1 0.02492570  63588          7       0  1       0   0
6  6    0 0.2131787  74       0 0.37560697   3500          3       0  1       0   1
> ptm <- proc.time()
> 
> RF<- randomForest(t22[,-c(1,2,7,12)],t22$Fail
+                    ,sampsize=c(10000),do.trace=F,importance=TRUE,ntree=500,,forest=TRUE)
Warning message:
In randomForest.default(t22[, -c(1, 2, 7, 12)], t22$Fail, sampsize = c(10000),  :
  The response has five or fewer unique values.  Are you sure you want to do regression?
> proc.time() - ptm
   user  system elapsed 
 437.30    0.86  450.97 
> 

该手册的foreach包中有一个关于并行随机森林的部分 (使用 foreach 包 http://cran.r-project.org/web/packages/foreach/vignettes/foreach.pdf,第 5.1 节):

> library("foreach")
> library("doSNOW")
> registerDoSNOW(makeCluster(4, type="SOCK"))

> x <- matrix(runif(500), 100)
> y <- gl(2, 50)

> rf <- foreach(ntree = rep(250, 4), .combine = combine, .packages = "randomForest") %dopar%
+    randomForest(x, y, ntree = ntree)
> rf
Call:
randomForest(x = x, y = y, ntree = ntree)
Type of random forest: classification
Number of trees: 1000

如果我们想要创建一个有 1000 棵树的随机森林模型,而我们的计算机有四棵树 核,我们可以通过执行以下命令将问题分成四个部分randomForest函数四次,与ntree参数设置为 250。当然,我们必须结合结果randomForest对象,但是randomForest包带有一个名为的函数combine.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加快随机森林速度的建议 的相关文章

  • rpart是自动剪枝吗?

    Is rpart自动修剪 生成的决策树rpart比具有自动修剪功能的 Oracle Data Mining 生成的级别要多得多 否 但拟合函数的默认值可能会 提前 停止分割 对于 早期 的某些定义 See rpart control对于您可
  • 使用 readHTMLTable 从 https 网页读取表格

    我安装了 R 3 3 1 并使用 RStudio 0 99 903 我正在尝试从以下 URL 将表格读入 R https www fantasypros com nfl rankings consensus cheatsheets php
  • matplotlib 中的 R 风格数据轴缓冲区

    R 绘图自动设置 x 和 y 限制 以在数据和轴之间留出一些空间 我想知道 matplotlib 是否有办法自动执行相同的操作 如果没有 是否有一个好的公式或 经验法则 来说明 R 如何设置其轴限制 在 matplotlib 中 您可以通过
  • stat_function 从函数生成平线

    我有以下代码 library ggplot2 f lt function x if x gt 2 1 x 0 3 else 0 graph lt ggplot data frame x c 0 10 aes x graph lt graph
  • 在函数中使用 quit/q 会导致 RStudio 出现致命错误

    更多的是好奇 但当你使用时q or quit在 R studio 内的函数内部 它会导致致命错误 如下所示 但 rgui 中的相同函数会导致 R 像往常一样停止 并且仅使用q 在 RStudio 中按预期关闭 R 为什么q在函数中导致 RS
  • 如何在基数 R 中进行分组

    我想使用以下 SQL 查询来表达base R 没有任何特定的包 select month day count as count avg dep delay as avg delay from flights group by month d
  • R:ifelse 中的字符串列表

    我正在寻找与 MySQL 中的 where var in 语句类似的东西 我的代码如下 data lt data frame id 10001 10030 cc1 rep c a b c 10 attach data data new lt
  • 函数“[<-”将_替换_一个元素,但不会追加_元素_

    我在使用时注意到以下几点 lt 我成功于替换元素但不位于追加向量的一个元素 例子 VarX lt integer VarX 1 lt 11 lt VarX 2 22 VarX 1 11 Expected the value of VarX
  • 通过 r markdown 中的循环创建代码片段

    如同如何使用R中的knitr创建一个包含代码块和文本的循环 https stackoverflow com questions 36373630 how to create a loop that includes both a code
  • 通过 Shiny 中的串扰将 Plotly 与 DT 结合使用

    我正在编写一个应用程序来将 csv 文件读取为闪亮的并将散点图与 DT 表链接起来 我几乎遵循了 Plotly 网站上 DT 数据表上的示例 https plot ly r datatable https plot ly r datatab
  • 通过 R 中的数据子集执行计算

    我想对数据框的 PERMNO 列中的每个公司编号进行计算 其摘要可以在此处查看 gt summary companydataRETS PERMNO RET Min 10000 Min 0 971698 1st Qu 32716 1st Qu
  • R data.table 1.9.2 关于 setkey 的问题

    这似乎是 1 8 10 后引入的一个错误 与包含列表的 DT 的 setkey 相关 运行下面两个代码来查看问题 library data table dtl lt list dtl 1 lt data table scenario 1 p
  • 如何确定 R 包的作者?

    如何确定包的作者是谁 鉴于我们拥有这个广泛使用的代码库 我认为参考我在分析中使用的软件是合适的 有没有办法以编程方式检索作者和任何其他相关信息 在伪代码中 我想执行以下操作 references base 我怎样才能做到这一点 为了能够引用
  • R 中的龙卷风图

    我正在尝试在 R 中绘制龙卷风图 又名敏感性图 目标是可视化某些变量增加 10 和减少 10 的效果 到目前为止我已经得到这个结果 这是我正在使用的代码 Tornado plot data lt matrix c 0 02 0 02 0 0
  • 使用 RDCOMClient 搜索 Outlook 收件箱

    我尝试使用 RDCOMClient 在 Outlook 收件箱中搜索电子邮件中的特定主题 然后获取附件 我在一封电子邮件上进行了这项工作 但由于主题包含日期元素 我需要搜索成为一个类似的子句 但不太清楚这适合我的下面的查询 outlook
  • 如何从 R 数据框中提取关键字

    我是 R 中文本挖掘的新手 我想从数据框的列中删除停用词 即提取关键字 并将这些关键字放入新列中 我尝试制作一个语料库 但它对我没有帮助 df C3是我目前拥有的 我想添加栏目df C4 但我无法让它工作 df lt structure l
  • 从 SHAP 值中获取特征重要性

    我想要获得重要功能的数据框 通过下面的代码 我得到了 shap values 但我不确定这些值的含义是什么 在我的 df 中有 142 个特征和 67 个实验 但得到了一个带有 ca 的数组 2500 个值 explainer shap T
  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x
  • 合并数据框而不重复行

    我想合并两个数据框 但如果有多个匹配项 则不想重复行 相反 我想总结一下那天的观察结果 来自 合并 提取两个数据框中与指定列匹配的行并将其连接在一起 如果有多个匹配项 则所有可能的匹配项各贡献一行 这是一些示例代码 days lt as d
  • 按特定样本前缀对列名称向量进行子集化

    假设我有一个如下所示的数据框 ca01 lt c 1 10 ca02 lt c 2 11 ca03 lt c 3 12 stuff 1 lt rep test 10 other lt rep 9 10 data lt data frame

随机推荐

  • 如何计算逻辑回归精度

    我是机器学习和 Python 编码的完全初学者 我的任务是从头开始编码逻辑回归 以了解幕后发生的情况 到目前为止 我已经编码了假设函数 成本函数和梯度下降 然后编码了逻辑回归 然而 在打印精度编码时 我得到的输出较低 0 69 该输出不会随
  • 如何将扩展 PUB-SUB 模式中的发布者和订阅者与 C++ 中 ZeroMQ 中的中介同步?

    Extended PUB SUB topology https i stack imgur com GEgpx png 我在一个有 1 个中介的用例中有多个发布者和多个订阅者 在 ZeroMQ 指南中 我了解了如何使用额外的方法来同步 1
  • iOS 5.0 Safari 未在文本框中垂直居中占位符

    我想将页面上的输入文本框中输入的文本垂直居中 实现此目的的典型方法是将行高和高度设置为相等 这适用于 iOS 5 0 之前的 Safari 然而 在 iOS 5 上 Safari 垂直居中显示键入的文本 但占位符文本和光标显示为顶部对齐 t
  • 在 Rust 中借助原始指针进行运行时借用管理是否是未定义的行为?

    作为将 C API 绑定到 Rust 的一部分 我有一个可变引用ph mut Ph 一个结构体struct EnsureValidContext lt a gt ph a mut Ph 以及一些方法 impl Ph pub fn print
  • JQuery UI 1.8.10 无法读取未定义的属性“3”

    我使用 JQuery UI 1 8 10 和最新的 jquery 我的代码是 div div
  • 尝试从 VB 6 调用 C# COM 对象 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图从 VB 6 调用 C COM
  • Rails 3 限制访问,以便用户只能更新他们的数据

    这看起来应该是相当简单的事情 因为它会被很多需要 我检查用户是否正常登录 但一旦用户登录 他们可能会更改其他人的帐户 例如 假设 ID 为 1 的用户已登录 并且他们将 users 2 edit 作为 url 这将向他们显示用户 2 的数据
  • codeigniter :将数据/记录插入到 2 个表中

    我有 2 个表 pengguna 和 mahasiswa 然后 1 个表有一个表单 其中 1 个表单插入到 2 个表中 到目前为止 我设法插入数据 但它与 主键 和 外键 有关它有问题 正如你从下面的代码中看到的id pengguna从表p
  • JSON 中位置 437 处出现意外标记 }

    我正在使用 Angular 5 0 0 我想连接angular bootstrap md 但是当你启动应用程序时ng s发生错误 错误 TS5014 无法解析文件 C Users Admin Desktop angular tsconfig
  • C 程序中的 .eh_frame 部分有什么用?

    我有一个从 C 程序编译的静态链接可执行文件 objdump x a out表明存在 eh frame部分 甚至在之后strip s 为什么本节在 C 语言中很有用 非 C 程序 有什么风险剥离它 与strip R eh frame 根据
  • 如何使用 http://translate.google.com/ 翻译 Java 程序中的字符串?

    我想用http translate google com http translate google com 翻译字符串 现在我想从 java 程序发送一个字符串http translate google com http translat
  • 无法反转链表

    我试图反转链表 但是每当我执行以下函数时 我只得到最后一个元素 例如 如果列表之前包含 11 12 13 执行该函数后 它只包含13 请指出我的代码中的错误 void reverselist struct node a b c a NULL
  • 设计者生成的表适配器如何处理连接

    表适配器如何使用连接 稍微解释一下 它们是否会自动打开和关闭连接 或者如果我在调用表适配器方法之前已经打开了连接 它们是否会使用它并使其保持打开状态 Regards 如果您查看设计器生成的代码 您会发现如果存在连接 适配器会重用它 否则会创
  • 我可以让 vim 尊重我的 .gitignore 文件吗?

    我想知道是否有一种方法可以让 vim 读取 gitignore 文件并使用它们来确定自动完成文件名时不显示的选项 例如 在 python 中工作 我不想看到可供编辑的 pyc 文件 我认为 vim 有它自己的机制 我想知道如何将 gitig
  • 使用 brfs 进行观看和捆绑而不使用 watchify 的命令

    我正在尝试复制的行为watchify与brfs变换 但我需要使用brfs直接因为我想避免在使用时添加到脚本中的额外代码require使用 browserify watchify 使用brfs直接简单替换require theFile 及其内
  • Rplot() 或 ggplot2() 中的对数 y 轴刻度线

    我看到了理想的刻度线结构log y 情节在这张纸 http arxiv org pdf cond mat 0412004 图3b 3c 3d 它具有不带标签的短的 对数间隔的小刻度线 以及带标签的长的 对数间隔的主刻度线 有谁知道如何实现这
  • 如何在 Go 中验证电子邮件地址

    我检查了 StackOverflow 但找不到任何可以回答的问题如何用 Go 语言验证电子邮件 经过一番研究 我根据自己的需要找出并解决了这个问题 我有这个regex and 转函数 效果很好 import fmt regexp func
  • jquery如何向图像添加图钉并将位置保存到SQL

    如何固定图像并保存固定位置 I found 这个插件 http jsfiddle net uKkRh 1 但我不知道如何保存这些引脚的位置 这个想法就像谷歌地图一样 用户可以在其中放置任意数量的图钉 并将这些图钉位置保存到数据库中 下次登录
  • 如何从命令行列出 Github 包注册表存储库中的所有包?

    假设我们有 Github 包注册表存储库https maven pkg github com someOrganization https maven pkg github com someOrganization 如何将此存储库中的所有包
  • 加快随机森林速度的建议

    我正在做一些工作randomForest包 虽然效果很好 但可能很耗时 有人对加快速度有什么建议吗 我使用的是带有双核 AMD 芯片的 Windows 7 盒子 我知道 R 不是多线程 处理器 但很好奇是否有任何并行包 rmpi snow