[R] Que faire lorsqu'une erreur se produit dans la fonction neuralnet
fonction neuralnet
La fonction neuralnet est l'une des bibliothèques de réseaux neuronaux de R.L'avantage de cette bibliothèque est que l'apprenant créé peut être visualisé directement avec plot (), et le graphique de calcul et les valeurs de poids / biais peuvent être visualisés en un coup d'œil.
Ce qui suit est un mémo qui sert également de mémorandum parce que j'ai trébuché de différentes manières lors de l'exécution d'une classification multi-classe avec l'ensemble de données d'iris comme pratique.Lorsque vous essayez réellement des réseaux de neurones dans R, il est recommandé de choisir une autre bibliothèque facile à utiliser.
Erreur et gestion lors de l'exécution de neuralnet
Erreur d'entrée de variable qualitative
Dans de nombreuses fonctions R, si vous définissez une variable qualitative comme type de facteur, elle sera automatiquement traitée comme une variable fictive (python n'a pas de type de facteur, la fonction pandas get_dummies etc. divise les variables qualitatives, et 0 ou 1 est ce que Create une colonne pour indiquer si elle appartient). Étant donné que la fonction neuralnet ne peut gérer que des variables quantitatives, elle n'a pas pu reconnaître correctement les variables qualitatives telles que «Espèce» d'iris, et une erreur s'est produite.Pour convertir une variable qualitative en variable factice, exécutez le code suivant.
library(caret)
tmp <- dummyVars(~.,data=train)
dummy <- as.data.frame(predict(tmp, train))
À propos de la formule au moment de la classification multi-classes
Dans la fonction nnet, etc., il peut être écrit comme suit.Ici, pour les espèces, d'autres variables sont spécifiées comme variables explicatives ("".Moyens autres que la variable objective).
library(nnet)
nn1 <- nnet(formula = Species ~ ., size=5, data=train)
Puisque la variable explicative a été convertie en variable fictive, la formule décrit toutes les classes à classer en les reliant avec "+".
library("neuralnet") f = Species.setosa + Species.versicolor + Species.virginica
~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
nn2 <- neuralnet(formula = f, data = dummy)
結果
J'ai pu classer les iris en toute sécurité.
discussion
Liste des commentaires
Il n'y a pas encore de commentaires