2017-02-11 2 views
0

Comment un flux de données dirait-il, 100 cas différents dans la fonction neuralnet() trouvée dans le paquet neuralnet sans les saisir manuellement.Alimentation de grandes quantités de données dans la fonction neuralnet dans R

S'il y a une trame de données avec colnames(df) = "one","two","three"..."one hundred"

et je veux utiliser chaque colonne comme une entrée dans un réseau de neurones, est-il un moyen d'appliquer la fonction neuralnet en tant que telle:

nn <- neuralnet(one~two+three+four+five+six+seven+eight...+one hundred, data=df, 
     err.fct = 'sse', linear.output = F, likelihood=T) 

sans tapant réellement tous les cent colnames.



J'ai essayé l'entrée:

nn <- neuralnet(one~as.factor(paste(names(df)[-1], collapse="+")) data=df, 
     err.fct = 'sse', linear.output = F, likelihood=T) 

et avons reçu l'erreur

Error in model.frame.default(formula.reverse, data) : 
    variable lengths differ (found for 'as.factor(paste(names(df)[-1], collapse="+"))') 
+3

utilisez un point. 'nn <- neuralnet (un ~., data = df, err.fct = 'sse', linear.output = F, vraisemblance = T)' – BigDataScientist

Répondre

1

Peut-être une double question. Edit: @Hong Ooi a souligné la "solution de point" ne fonctionne pas dans neuralnet().

dta <- data.frame(a=rnorm(10), a2=rnorm(10), a3=rnorm(10)) 
frm <- as.formula(paste(names(dta)[1], " ~ ", paste(names(dta)[-1], collapse= "+"))) 
nn <- neuralnet(frm, data=dta, err.fct = 'sse', linear.output = F, likelihood=T) 
+1

Merci. Désolé Si le doublon n'a pas pu trouver quelque chose comme les goûts. Si vous le faites s'il vous plaît faites le moi savoir et va supprimer –

+1

Je me souviens juste d'apprendre le point ici: D Je ne me dérange pas à ce sujet. Est-ce que ça marche pour toi? – BigDataScientist

+0

Message d'erreur de réception: 'Error in terms.formula (formula): '.' dans la formule et aucun argument 'data' –