tipos - Error en los términos. Fórmula(fórmula): ''.'' en la fórmula y ningún argumento ''datos''
tipos de argumentos (2)
Estoy tratando de usar neuralnet para la predicción.
Crea un poco de X:
x <- cbind(seq(1, 50, 1), seq(51, 100, 1))
Crear Y:
y <- x[,1]*x[,2]
Dales un nombre
colnames(x) <- c(''x1'', ''x2'')
names(y) <- ''y''
Hacer data.frame:
dt <- data.frame(x, y)
Y ahora tengo error.
model <- neuralnet(y~., dt, hidden=10, threshold=0.01)
error en los términos. fórmula (fórmula): ''.'' en la fórmula y ningún argumento ''datos''
Por ejemplo, en lm (modelo lineal) esto está trabajado.
Al ofrecer una alternativa más simple a la respuesta anterior, puede crear una fórmula a partir de los nombres de dt
usando reformulate()
:
f <- reformulate(setdiff(colnames(dt), "y"), response="y")
reformulate()
no requiere el uso de paste()
y automáticamente agrega los términos juntos.
Como dice mi comentario, esto parece un error en la función no exportada neuralnet:::generate.initial.variables
. Como solución, simplemente construya una fórmula larga a partir de los nombres de dt
, excluyendo y
, por ejemplo,
n <- names(dt)
f <- as.formula(paste("y ~", paste(n[!n %in% "y"], collapse = " + ")))
f
## gives
> f
y ~ x1 + x2
## fit model using `f`
model <- neuralnet(f, data = dt, hidden=10, threshold=0.01)
> model
Call: neuralnet(formula = f, data = dt, hidden = 10, threshold = 0.01)
1 repetition was calculated.
Error Reached Threshold Steps
1 53975276.25 0.00857558698 1967