[R] O que fazer quando ocorre um erro na função da rede neural
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.
discussão
Lista de comentários
Ainda não há comentários