[R] O que fazer quando ocorre um erro na função da rede neural

2018 ano 11 mês 15 dia

função neuralnet

A função neuralnet é uma das bibliotecas de rede neural em R.A vantagem desta biblioteca é que o aluno criado pode ser visualizado diretamente com plot (), e o gráfico de cálculo e os valores de peso / polarização podem ser vistos rapidamente.
A seguir está um memorando que também serve como um memorando porque tropecei de várias maneiras ao realizar a classificação de várias classes com o conjunto de dados da íris como uma prática.Ao experimentar redes neurais em R, é recomendável escolher outra biblioteca fácil de usar.

Erro e tratamento ao executar neuralnet

Erro de entrada de variável qualitativa

Em muitas funções R, se você definir uma variável qualitativa como um tipo de fator, ela será tratada automaticamente como uma variável fictícia (python não tem um tipo de fator, função pandas get_dummies etc. divide as variáveis ​​qualitativas, e 0 ou 1 é o que Criar uma coluna para indicar se pertence). Uma vez que a função neuralnet pode lidar apenas com variáveis ​​quantitativas, ela não pôde reconhecer corretamente as variáveis ​​qualitativas, como "Espécies" de íris, e ocorreu um erro.Para converter uma variável qualitativa em uma variável fictícia, execute o código a seguir.

library(caret) 
tmp <- dummyVars(~.,data=train) 
dummy <- as.data.frame(predict(tmp, train))

Sobre a fórmula no momento da classificação multiclasse

Na função nnet etc., ele pode ser escrito da seguinte maneira.Aqui, para Espécies, outras variáveis ​​são especificadas como variáveis ​​explicativas ("".Meios diferentes da variável objetiva).

library(nnet) 
nn1 <- nnet(formula = Species ~ ., size=5, data=train)

Como a variável explicativa foi convertida em uma variável dummy, a fórmula descreve todas as classes a serem classificadas conectando-as com "+".

library("neuralnet") f = Species.setosa + Species.versicolor + Species.virginica       
~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width 
nn2 <- neuralnet(formula = f, data = dummy)

结果

Consegui classificar a íris com segurança.