[R] Cosa fare quando si verifica un errore nella funzione di rete neurale

2018 年 11 月 15 日

funzione neuralnet

La funzione neuralnet è una delle librerie di reti neurali in R.Il vantaggio di questa libreria è che lo studente creato può essere visualizzato direttamente con plot (), e il grafico di calcolo e i valori di peso / bias possono essere visti a colpo d'occhio.
Quello che segue è un promemoria che funge anche da promemoria perché sono inciampato in vari modi durante l'esecuzione della classificazione multi-classe con il set di dati dell'iride come pratica.Quando si provano effettivamente reti neurali in R, si consiglia di scegliere un'altra libreria di facile utilizzo.

Errore e gestione durante l'esecuzione di Neuralnet

Errore di input della variabile qualitativa

In molte funzioni R, se definisci una variabile qualitativa come un tipo di fattore, verrà automaticamente trattata come una variabile fittizia (python non ha un tipo di fattore, la funzione panda get_dummies ecc. Divide le variabili qualitative e 0 o 1 è quale Crea una colonna per indicare se appartiene). Poiché la funzione di rete neurale può gestire solo variabili quantitative, non è stata in grado di riconoscere correttamente variabili qualitative come "Specie" di iris e si è verificato un errore.Per convertire una variabile qualitativa in una variabile fittizia, eseguire il codice seguente.

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

Sulla formula al momento della classificazione multi-classe

Nella funzione nnet, ecc., Può essere scritto come segue.Qui, per le specie, altre variabili sono specificate come variabili esplicative ("".Mezzi diversi dalla variabile oggettiva).

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

Poiché la variabile esplicativa è stata convertita in una variabile fittizia, formula descrive tutte le classi da classificare collegandole con "+".

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

結果

Sono stato in grado di classificare l'iride in modo sicuro.