Gibt es eine Möglichkeit zum einrichten einer multi-hidden-layer neuronale Netzwerk mit dem mlp-Methode in der caret-Paket?
Den mlp
Methode in package die Cursor
ruft die mlp
Funktion in RSNNS
. In der RSNNS
Paket, ich kann beliebig viele versteckte Schichten im neuronalen Netz, wie ich von der Einstellung der parameter "Größe", z.B.
data(iris)
#shuffle the vector
iris <- iris[sample(1:nrow(iris),length(1:nrow(iris))),1:ncol(iris)]
irisValues <- iris[,1:4]
irisTargets <- decodeClassLabels(iris[,5])
#irisTargets <- decodeClassLabels(iris[,5], valTrue=0.9, valFalse=0.1)
iris <- splitForTrainingAndTest(irisValues, irisTargets, ratio=0.15)
iris <- normTrainingAndTestSet(iris)
model <- mlp(iris$inputsTrain, iris$targetsTrain, size=c(5,7), learnFuncParams=c(0.1),
maxit=50, inputsTest=iris$inputsTest, targetsTest=iris$targetsTest)
Wird ein neuronales Netz mit zwei versteckten Schichten 5 und 7 Knoten bzw. Ich will das caret
Paket, weil es die Funktionalität für das tun der parameter/Modell sucht, als auch parallele Implementierungen für einen cluster. In caret
, wenn ich nach der Methode, es kann nur abgestimmt werden, mit einem parameter size
z.B.
data(iris)
mlpGrid <- data.frame(.size=3)
model2<-caret::train(Species~. , iris, method='mlp', tuneGrid=mlpGrid)
Stellt ein neuronales Netz mit 3 Knoten einzigen hidden layer.
Ich habe versucht, das hinzufügen von weiteren Spalten mlpGrid
und so, aber caret
scheint nicht zu zulassen, die das hinzufügen einer zweiten (oder mehreren) verborgenen Schicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie verwenden, caret-Zeichen ist "mlpML" Methode anstelle von "mlp". Mach es nutzt mlp Funktion von RSNNS, aber Sie sind in der Lage zu definieren, die Anzahl der Neuronen pro hidden layer separat. Zum Beispiel, der folgende code sollte die Arbeit zu tun. Sie definieren individuelle raster mit der definition der Schichten, jede Schicht (
1
,2
, und3
) und wie viele Neuronen pro Schicht.Angesichts der
verboseIter=TRUE
es zeigt, dass die Werte waren in der Tat angewendetDie kurze Antwort ist, dass ich glaube nicht, dass die Caret-unterstützt multi-hidden-layer Netzwerke die Verwendung der MSP-Methode.
Wenn Sie gesetzt sind, über die Verwendung der mlp (Oder brauchen zu nennen RSNSS), dann könnten Sie die Verkettung der Netze zusammen, wie in der Fütterung der Ausgabe des ersten in die Eingänge des zweiten, simulieren, anderen, verborgenen Ebene. Dies wäre natürlich schwieriger zu implementieren, und Sie verlieren viele der Optimierungen, die Sie vornehmen möchten, verwenden Einfügemarke in den ersten Platz.
Auf der anderen Seite, Caret-Zeichen bietet eine alternative, die verwendet die neuralnet-Paket (method = 'neuralnet'). Dies würde es erlauben, Sie zu verwenden Einfügemarke mit einem multi-hidden-layer neural network. Aber es sieht von der Dokumentation, nur 3 ausgeblendete Ebenen werden unterstützt.