[R] Qué hacer cuando ocurre un error en la función de la red neuronal

2018/11/15

función de red neuronal

La función de red neuronal es una de las bibliotecas de redes neuronales en R.La ventaja de esta biblioteca es que el alumno creado se puede visualizar directamente con plot (), y el gráfico de cálculo y los valores de peso / sesgo se pueden ver de un vistazo.
El siguiente es un memorándum que también sirve como memorándum porque tropecé de varias maneras al realizar la clasificación de clases múltiples con el conjunto de datos del iris como práctica.Al probar redes neuronales en R, se recomienda elegir otra biblioteca fácil de usar.

Error y manejo al ejecutar neuralnet

Error de entrada de variable cualitativa

En muchas funciones R, si define una variable cualitativa como un tipo de factor, se tratará automáticamente como una variable ficticia (python no tiene un tipo de factor, la función pandas get_dummies, etc. divide las variables cualitativas, y 0 o 1 es cuál Crear una columna para indicar si pertenece). Dado que la función de la red neuronal solo puede manejar variables cuantitativas, no pudo reconocer correctamente variables cualitativas como "Especies" de iris y se produjo un error.Para convertir una variable cualitativa en una variable ficticia, ejecute el siguiente código.

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

Acerca de la fórmula en el momento de la clasificación de clases múltiples

En la función nnet, etc., se puede escribir de la siguiente manera.Aquí, para las especies, otras variables se especifican como variables explicativas ("".Medios distintos a la variable objetivo).

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

Dado que la variable explicativa se ha convertido en una variable ficticia, la fórmula describe todas las clases que se clasificarán conectándolas con "+".

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

结果

Pude clasificar el iris de forma segura.