R 神经网络包对于数百万条记录来说太慢

2023-12-14

我正在尝试使用 R 包神经网络训练用于流失预测的神经网络。这是代码:

data <- read.csv('C:/PredictChurn.csv') 
maxs <- apply(data, 2, max) 
mins <- apply(data, 2, min)
scaled_temp <- as.data.frame(scale(data, center = mins, scale = maxs - mins))
scaled <- data
scaled[, -c(1)] <- scaled_temp[, -c(1)]
index <- sample(1:nrow(data),round(0.75*nrow(data)))
train_ <- scaled[index,]
test_ <- scaled[-index,]
library(neuralnet)
n <- names(train_[, -c(1)])
f <- as.formula(paste("CHURNED_F ~", paste(n[!n %in% "CHURNED_F"], collapse = " + ")))
nn <- neuralnet(f,data=train_,hidden=c(5),linear.output=F)

它按其应有的方式工作,但是当使用完整数据集(数百万行的范围内)进行训练时,它花费的时间太长。所以我知道 R 默认情况下是单线程的,所以我尝试研究如何将工作并行化到所有核心。是否有可能并行执行此功能?我尝试过各种软件包但没有成功。

有人能够做到这一点吗? 它不一定是神经网络包,任何可以让我训练神经网络的解决方案都可以。

谢谢


我对这个套餐有很好的体验Rmpi,它也可能适用于您的情况。

library(Rmpi)

简单来说,它的用法如下:

nproc = 4  # could be automatically determined
# Specify one master and nproc-1 slaves
Rmpi:: mpi.spawn.Rslaves(nslaves=nproc-1)
# Execute function "func_to_be_parallelized" on multiple CPUs; pass two variables to function
my_fast_results = Rmpi::mpi.parLapply(var1_passed_to_func,
                                      func_to_be_parallelized,
                                      var2_passed_to_func)
# Close slaves
Rmpi::mpi.close.Rslaves(dellog=T)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 神经网络包对于数百万条记录来说太慢 的相关文章

  • rgdax(coinbase)数据未按预期收集数据

    我正在尝试使用rgdaxR 包用于下载一些历史价格 我设置了 API 密钥等 并尝试在过去 24 小时内加载 start lt strftime Sys time Y m dT H M SZ tz UTC end lt strftime S
  • 在ggplot2中绘制大多边形地图的小区域

    我有一个 shapefile 我使用它在 ggplot2 中进行了强化和绘制geom polygon 我怎样才能只绘制这张地图的一小部分区域 我的完整地图看起来不错 但我的小区域很混乱 这是一个工作示例 这个小形状文件可以从以下位置获得 h
  • 替换因子列中的

    我想更换
  • 将公式传递给 R 中的函数?

    对此的任何帮助将不胜感激 我正在使用 Lumley 调查包 并试图简化我的代码 但遇到了一些小障碍 在我的代码中调用包中的 svymean 函数如下 其中第一个参数是指示我想要哪些变量的公式 第二个参数是该数据集 svymean hq eh
  • 提取模型摘要并将其存储为新列

    我是新来的purrr范例并正在努力解决它 根据一些来源 我已经设法嵌套一个数据框 在嵌套数据上运行线性模型 从每个 lm 中提取一些系数 并为每个 lm 生成摘要 我想做的最后一件事是从摘要中提取 r squared 我原以为这将是我想要实
  • 如何测试字符串中的前三个字符是r中的字母还是数字?

    下面给出了我拥有的数据集的示例 请注意 总数据集中我有超过两列 ID X 1 MJF34 2 GA249D 3 DEW235R 4 4SDFR3 5 DAS3 我想测试 X 中的前三个字符是否是字母 如果是 那么我想替换该值以仅显示前三个字
  • 在另一列的字符串中搜索一列中的文本

    这里是 R 新手 一直在搜索此论坛 尝试找到一种在同一行数据的字符串中搜索文本的方法 我以前使用过 grepl 但无法让它向下查找列并对每一行应用检查 我觉得这是一个简单的解决方案 但我花了几个小时 但似乎无法得到它 基本上我有类似下面第
  • R + ggplot2 - 无法分配大小为 128.0 Mb 的向量

    我有一个 4 5MB 9 223 136 行 的文件 其中包含以下信息 0 0 0 0147938 3 67598e 07 0 0226194 7 35196e 07 0 0283794 1 10279e 06 0 033576 1 470
  • dplyr::mutate 添加多个值

    网上有几个与此相关的问题dplyr Github 存储库 https github com hadley dplyr已经 并且至少有一个相关的问题 但没有一个问题完全涵盖了我的问题 我认为 在 dplyr mutate 调用中添加多列 ht
  • RQuantLib 包不适用于 R 3.5.0

    有没有其他人尝试加载 R 3 5 0 的 RQuantLib 包 我尝试过 以前有效 install packages drat dependencies TRUE drat addRepo ghrr install packages RQ
  • 如何在 R 中更新和重新编译 nlme 源代码

    我正在尝试更新 nlme 包 以便我可以在 gls 命令中使用大圆距离进行相关性 我正在尝试使用指定的更改来编辑源代码here http r 789695 n4 nabble com nlme spatial autocorrelation
  • 如何在双对数图(ggplot2)中添加趋势线?

    我需要绘制一个遵循幂律分布的数据向量 所以如果我将它们绘制在对数轴上 它们将是一条直线 但是 如果我没有明确提供 y 参数 我不知道如何绘制 这是代码 library poweRlaw library ggplot2 xmin 1 alph
  • 为什么我收到保存错误、软盘错误的消息?

    我最近更新了 R 和 R studio 当我尝试保存文件时 收到一条错误消息 保存 文件名 时出错 驱动器中的软盘错误 将 2 卷序列号 3 插入驱动器 1 这是第一次看到这个错误信息 不知道该怎么办 我也无法 另存为 感谢您的帮助 尝试使
  • 将 dplyr 中的starts_with与部分列名称的向量一起使用

    我想使用 dplyr 选择与字符串向量匹配的某些列 one lt seq 1 10 two lt rnorm 10 three lt runif 10 1 2 four lt 10 1 df lt data frame one two th
  • PHP 中的并行处理 - 你是如何做到的?

    我目前正在尝试在 php 中实现一个作业队列 然后 队列将作为批处理作业进行处理 并且应该能够并行处理一些作业 我已经做了一些研究并找到了几种实现它的方法 但我并不太了解它们的优点和缺点 例如 通过多次调用脚本来进行并行处理fsockope
  • 重叠并固定小平面中的 x 尺度(尺度=“自由”)以制作电影

    在另一篇文章中 Justin 的帮助下 我用以下方法绘制了模拟结果facet gridggplot2 中的选项 包含数据和答案的帖子在这里 使用facet grid选项通过ggplot2绘制数据框的列 https stackoverflow
  • Sweave + RweaveHTML:cat 输出未出现在输出中

    我对 Sweave RweaveHTML 有疑问 我希望 cat 的输出最终出现在正在生成的 html 文件中 我有一个案例 它没有 我不明白为什么 test function bla bla cat Result is 然后在 Rnw 文
  • 在 R 的 stargazer 表中设置注释格式

    我在用stargazer包来生成 回归输出 表 一切都在奇迹般地进行 直到我开始编辑笔记 First 换行很难 但是 Bryansuggests https stackoverflow com questions 21720264 star
  • 有条件地将字符串转换为特定数值

    我确信对此有一个简单的答案 但我已经扫描了堆栈溢出 但无法找到解决方案 似乎 sapply 和 ifelse 函数的组合可能可以完成这项工作 但我不确定 所以我有一个包含字符的数据框 除了一列是数值 Create dataframe whi
  • R中的引用调用(使用函数修改对象)

    我刚刚接触 R 很惊讶地发现函数不会修改对象 至少看起来这是默认的 例如 我编写了一个函数 只是为了在表格中的一个标签上粘贴一个星号 它在函数内部工作 但表本身没有改变 我主要来自Ruby 那么 在 R 中使用函数更改对象的正常 可接受的方

随机推荐

  • DNS 消息是否将名称填充为偶数字节?

    初步说明 是的 我知道 DNS 库和易于使用的 DNS 服务器的存在 我这样做纯粹是为了学术目的 并了解 DNS 查询的工作原理 问题 我在看RFC 1035了解 DNS 消息的工作原理 我想我或多或少理解了该备忘录中的所有内容 然而 有一
  • pygame 与海龟崩溃

    我收到此错误代码 2017 04 13 03 04 14 958 Python 606 839244 SDLApplication setup unrecognized selector sent to instance 0x1007a0d
  • SQL Server 2005 中的临时表不会自动删除

    我正在对一个令人讨厌的存储过程进行故障排除 并注意到在运行它之后 并且我已经关闭了会话 许多临时表仍然留在 tempdb 中 他们的名字如下 000E262B 002334C4 004E1D4D 00583EEE 00783A7F 0083
  • 使用 MTKTextureLoader 加载远程图像

    我正在尝试将远程图像加载到MTLTexture用这个代码 let textureLoader MTKTextureLoader device device textureLoader newTexture withContentsOf ur
  • 从Github API获取特定的README.md数据

    最近 我开始尝试使用 GitHub API 从公共存储库获取特定数据 长话短说 我想从存储库中获取 README md 文件的特定部分 例如 来自 Facebook 的 React 存储库的 master 分支 我想抓取下面的文本文档Git
  • 最小列总和差是多少? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 想象一下 给定一个正整数矩阵 最大 25 15 数字值不超过 3000000 当您进行列求和并选择最小和最大的一项时 它们之间的差异必须尽可能小 您可以根据需要交换每行中的数字
  • 以 HTML 形式显示的 LaTeX 表格

    我有以下 LateX 表 在以下情况下按预期呈现format pdf title Test Table format pdf begin center begin tabular l l l hline Var Class Descript
  • 用户名网址,例如 twitter 和 facebook

    twitter 和 facebook 等如何制作唯一的 url 例如 twitter com billgates 如果我想做同样的事情 为我的用户提供带有用户名的唯一网址 它是一个应用程序还是您为每个用户创建一个带有索引页面的目录 顺便说一
  • InvalidParameterValueException:无法访问流

    我正在尝试使用 Terraform 创建 dynamodb 表和 lambda 触发器 这就是我定义表 角色策略和 lambda 触发器的方式 resource aws dynamodb table filenames name local
  • 如何更新数组中嵌套的数组中的项目

    我通过最新的 C 驱动程序 此时为 v2 7 0 使用 MongoDB 4 0 我有一份文件 其中有Options and Options have Inventory 换句话说 库存数组嵌套在选项数组中 如何了解库存水平并仅更新库存 以下
  • 如何读取和修改已绘制的 Google 图表上的轴?

    我有一个页面 上面有几个谷歌图表 主要是组合图和折线图 例如 chart new google visualization LineChart chartDiv 绘制页面后 我希望能够读取轴上的最大值 然后重新绘制图表 以便它们在轴上都具有
  • 当存在多个路由时,使用查询字符串进行路由属性路由

    我有这个 HttpGet Route Cats public IHttpActionResult GetByCatId int catId HttpGet Route Cats public IHttpActionResult GetByN
  • 在 Ant 复制任务过滤器中获取文件名

    是否可以获取 Ant 复制任务中正在复制的当前文件名 我正在尝试运行 beanshell 脚本并希望访问当前文件名
  • 错误:无法在属性初始值设定项中使用实例成员 - Swift 3

    当我编译以下代码时 出现错误 无法在属性初始值设定项中使用实例成员 AddEployeeName 属性初始值设定项在 self 可用之前运行 你能帮忙解决这个错误吗 该计划允许员工输入姓名并拍摄照片 class AddEmployeeVie
  • 具有复杂形状的 ggplot 和 grid.picture 之间的区别

    我希望获得单个字母的 x y 坐标并用 ggplot 绘制它们 我在用grImport PostScriptTrace从 Postscript 文件获取 XML 文件 从那里 我从 Picture 类的 S4 对象中提取 x y 坐标 绘制
  • 断言 UITest 中的按钮上存在图像

    我在 ZStack 中有一个带有前景图像的按钮 Button action self highlighted self highlighted ZStack Text Text if self highlighted Image highl
  • pyspark 滞后函数(基于列)

    我想实现以下目标 lag column1 datediff column2 column3 over window 偏移量是动态的 我也尝试过使用UDF 但没有成功 有什么想法如何实现上述目标吗 论点count of the lag函数采用
  • 如何使用 Java 解析 JSON 二维数组

    我有这样的 json 数据 err code 0 date 20130121 time from 1242 range 5 data 12313123 BOOK CODE CYFV3M NUM CODE 3789850802600 0898
  • aws s3 java sdk 下载 pdf 被损坏

    我正在使用 getObject api 从 aws s3 下载文件 简单的文本文件工作正常 但在下载 pdf 时我的文件已损坏 我正在使用 FileOutputStream 并将内容保存在文件中 但保存的 pdf 已损坏 我不太确定用于此目
  • R 神经网络包对于数百万条记录来说太慢

    我正在尝试使用 R 包神经网络训练用于流失预测的神经网络 这是代码 data lt read csv C PredictChurn csv maxs lt apply data 2 max mins lt apply data 2 min