require(neuralnet)
require(nnet)
require(ggplot2)
set.seed(10)
songs <- read.csv("songs.csv")
no_rows <- 64
no_columns <- 13
feature_vector_size = no_rows * no_columns
names(songs) <- vector(mode ="character",length=0)
for (i in 1:(feature_vector_size+1))
names(songs)[i] <- i
names(songs)[1] = "label"
train <- cbind(songs[, 2:(feature_vector_size+1)],
class.ind(as.factor(songs$label)))
# Set labels name
names(train) <- c(names(songs)[2:
(feature_vector_size+1)],"l1","l2","l3")
scl <- function(x){ (x - min(x))/(max(x) - min(x)) }
train[, 1:feature_vector_size] <- data.frame(lapply(train[,
1:feature_vector_size], scl))
n <- names(train)
f <- as.formula(paste("l1 + l2 + l3 ~", paste(n[!n %in%
c("l1","l2","l3")], collapse = " + ")))
nn <- neuralnet(f,
data = train,
hidden = c(832, 100, 3),
act.fct = "logistic",
linear.output = FALSE,
lifesign = "minimal")
songs.csv包含833列,第一列为标签(1或2或3),2至833包含要素(实际值)。 错误来自神经网络功能: term.formula(公式)中的错误:无效的模型公式 ExtractVars