2014-06-20 8 views
13

Ich versuche Modell Zug Funktion von caret Paket zu erstellen:Wie verfolge ich einen Fortschritt beim Erstellen eines Modells mit dem Caret-Paket?

model <- train(training$class ~ .,data=training, method = "nb") 

Trainingssatz über 20K Beobachtungen enthält, jede Beobachtung über 100 Variablen hat. Ich würde gerne wissen, ob das Erstellen eines Modells aus diesem Datensatz Stunden oder Tage dauert.

Wie schätzt man die Zeit ein, die benötigt wird, um ein Modell aus Daten zu trainieren? Wie verfolgen Sie einen Fortschritt des Trainingsprozesses, wenn Sie Funktionen aus dem Caret-Paket verwenden?

Antwort

21

Unter der Annahme, dass Sie das Modell trainieren mit

  • ein erweitertes Netz von Tuning-Parameter (alle Kombinationen der Tuning-Parameter)
  • und eine Neuabtasttechnik Ihrer Wahl (Kreuzvalidierung, Bootstrap etc)

Sie könnten

trainctrl <- trainControl(verboseIter = TRUE) 

und Satz Satz es in dem trControl Argumente der Zuges Funktion, um die Konsole an jeder Resampling-Bühne, und ermöglicht es Ihnen, den Fortschritt des Ausbildung/Parameter-Tuning zu messen Trainingsfortschritt

model <- train(training$class ~ .,data=training, method = 'nb', trControl = trainctrl) 

Dies gibt den Fortschritt zu verfolgen.

Um die Gesamtlaufzeit abzuschätzen, können Sie das Modell einmal ausführen, um zu sehen, wie lange es läuft, und die Gesamtzeit durch Multiplizieren anhand des Resampling-Schemas und der Anzahl der Parameterkombinationen schätzen. Dies kann durch die Einstellung der trainControl wieder geschehen, und die Einstellung des tuneLength bis 1:

trainctrl <- trainControl(method = 'none') 
model <- train(training$class ~ ., data = training, method = 'nb', trControl = trainctrl, tuneLength = 1) 

hoffte, das hilft! :)

Verwandte Themen