当我尝试运行这行代码时出错:
nnetPred.model <- nnetPred(X, Y, step_size = 0.4,reg = 0.0002, h=50, niteration = 6000)
错误消息是:
Error in nnetPred(X, Y, step_size = 0.4, reg = 2e-04, h = 50, niteration = 6000) :
unused arguments (step_size = 0.4, reg = 2e-04, h = 50, niteration = 6000)
我的代码如下:
nnetPred <- function(X, Y, para = list()){
W <- para[[1]]
b <- para[[2]]
W2 <- para[[3]]
b2 <- para[[4]]
N <- nrow(X)
hidden_layer <- pmax(0, X%*% W + matrix(rep(b,N), nrow = N, byrow = T))
hidden_layer <- matrix(hidden_layer, nrow = N)
scores <- hidden_layer%*%W2 + matrix(rep(b2,N), nrow = N, byrow = T)
predicted_class <- apply(scores, 1, which.max)
return(predicted_class)
}
nnetPred.model <- nnetPred(X, Y, step_size = 0.4,reg = 0.0002, h=50, niteration = 6000)
答案 0 :(得分:1)
看起来你正在尝试使用变量参数。在R中,这意味着省略号(...
)。这就是如何定义nnetPred
的顶部以使用变量参数:
nnetPred <- function(X, Y, ...) {
para <- list(...)
这将适用于您的情况,但实际上并不是定义该函数的最佳方法,因为它看起来像您有一定数量的参数。只有当您具有未知数量的参数时,才应使用可变参数列表。我建议您只需将参数放在参数列表中。如果您愿意,可以重命名它们:
nnetPred <- function(X, Y, step_size, reg, h, niteration) {
W <- step_size
b <- reg
W2 <- h
b2 <- niteration
答案 1 :(得分:0)
yy