小编seb*_*nmm的帖子

查找包含任何列中的值(或多个值)的行

假设我们在几列中有一个包含字符串的表'数据'.我们希望找到包含某个值的所有行的索引,或者更好的是,找到几个值中的一个.然而,该专栏未知.

我现在所做的是:

apply(df, 2, function(x) which(x == "M017"))
Run Code Online (Sandbox Code Playgroud)

其中df =

1 04.10.2009 01:24:51   M017  <NA>  <NA>    NA
2 04.10.2009 01:24:53   M018  <NA>  <NA>    NA
3 04.10.2009 01:24:54   M051  <NA>  <NA>    NA
4 04.10.2009 01:25:06   <NA>  M016  <NA>    NA
5 04.10.2009 01:25:07   <NA>  M015  <NA>    NA
6 04.10.2009 01:26:07   <NA>  M017  <NA>    NA
7 04.10.2009 01:26:27   <NA>  M017  <NA>    NA
8 04.10.2009 01:27:23   <NA>  M017  <NA>    NA
9 04.10.2009 01:27:30   <NA>  M017  <NA>    NA
10 04.10.2009 01:27:32   M017  <NA>  <NA>    NA …
Run Code Online (Sandbox Code Playgroud)

r

24
推荐指数
3
解决办法
5万
查看次数

requireNamespace 未加载所需的函数

我用来neuralnet训练神经网络。该包,更具体地说是 的绘图功能neuralnet,依赖于grid,它是去年以来的基础包。但是,除非我grid手动加载,否则绘图会失败:

AND <- c(rep(0,7),1)
OR <- c(0,rep(1,7))
binary.data <- data.frame(expand.grid(c(0,1), c(0,1), c(0,1)), AND, OR)
net <- neuralnet::neuralnet(AND + OR ~ Var1 + Var2 + Var3, binary.data, 
                       hidden = 0, linear.output=FALSE)

if(requireNamespace("grid")) {
  neuralnet::plot.nn(net)
}

> Error in plot.nn(net, rep = i, x.entry, x.out, radius, arrow.length, intercept,  : 
> could not find function "grid.newpage"
Run Code Online (Sandbox Code Playgroud)

使用library(grid)帮助,但我想避免这种情况,因为我想稍后在我自己的包中使用它。R 包建议使用requireNamespace,但这也没有帮助,正如我们在上面看到的。

grid::在对函数的所有调用前面添加grid并从源代码构建包解决了这个问题,但我想知道:这是预期的行为吗?查看 的来源neuralnet,我发现没有提及requireNamespacelibrary …

r r-package

5
推荐指数
1
解决办法
1043
查看次数

了解随机起始权重对神经网络性能的影响

使用R和包neuralnet,我尝试模拟如下所示的数据:

培训数据

这些是几天内以10分钟为间隔的温度读数(上面是2天的切口).使用下面的代码,我将神经网络拟合到数据中.可能有更简单的方法来建模这些确切的数据,但将来数据可能看起来很不一样.使用具有2个神经元的单个隐藏层给出了令人满意的结果:

良好的神经网络性能

这也适用于大多数层和神经元.然而,有一个隐藏层有一个神经元,偶尔有两层(在我的情况下分别为3和2个神经元),我的结果相当差,总是在同一个形状:

神经网络性能差

唯一随机的是初始化权重,所以我认为它与此相关.但是,我必须承认,我还没有完全掌握神经网络的理论.我想知道的是,糟糕的结果是由于局部最小值('神经网络'使用弹性反向传播,默认情况下重量回溯)我只是运气不好,或者我是否可以避免这种情况.我的印象是有一个最佳数量的隐藏节点用于拟合,例如2度,5度,10度的多项式.如果不是,那么我最好的行动方案是什么?学习率更高?错误阈值较小?提前致谢.

我还没有尝试调整rprop参数,所以解决方案可能就在那里.

码:

# DATA ----------------------
minute <- seq(0, 6*24 - 1)
temp <- rep.int(17, 6*24)
temp[(6*7):(6*20)] <- 20
n <- 10
dta <- data.frame(Zeit = minute, Status = temp)
dta <- dta[rep(seq_len(nrow(dta)), n), ]
# Scale everything
maxs <- apply(dta, 2, max) 
mins <- apply(dta, 2, min)

nnInput <- data.frame(Zeit = dta$Zeit, Status = dta$Status)
nnInput <- as.data.frame(scale(nnInput, center = mins, scale = maxs - mins))
trainingData <- …
Run Code Online (Sandbox Code Playgroud)

r machine-learning neural-network deep-learning

5
推荐指数
2
解决办法
659
查看次数