model.matrix
- это matrix
, а не data.frame
. Согласно данным ?neuralnet
- фрейм данных, содержащий переменные, указанные в формуле.
Итак, нам может потребоваться преобразовать в data.frame с as.data.frame
, поскольку это правильно работает с data.frame
input
library(neuralnet)
data(iris)
nn <- neuralnet(Species~ ., iris,
linear.output = FALSE, hidden = 1, err.fct = "sse")
nn$weights
#[[1]]
#[[1]][[1]]
# [,1]
#[1,] -9.900398
#[2,] -1.527258
#[3,] -13.201669
#[4,] 11.624309
#[5,] 17.896367
#[[1]][[2]]
# [,1] [,2] [,3]
#[1,] 32.51005 -4.014045 -4.303671
#[2,] -65.72300 4.013259 4.304652
В коде OP проблема заключается в том, что model.matrix
создает имена столбцов с нестандартными именами. Его можно преобразовать в стандартные имена с помощью make.unique
names(training) <- make.names(names(training))
n <- neuralnet(price ~ .,
data = training,
hidden = 1,
err.fct = "sse",
linear.output = FALSE)
n$weights
#[[1]]
#[[1]][[1]]
# [,1]
# [1,] -0.62625018
# [2,] 1.39124245
# [3,] -2.59472834
# [4,] 0.27773897
# [5,] 7.15830865
# [6,] -2.93583230
# ...