Seite 1 von 1

Kreuzvalidierung

Verfasst: Di Dez 06, 2016 11:37 am
von anna_stat
Hallo! :)

Ich möchte gerne eine Kreuzvalidierung meiner erstellten multiplen Regression durchführen!

Hat jemand schon mal mit dem Paket "caret" gearbeitet?
Ich verstehe folgenden Code nicht:

Code: Alles auswählen

library(caret)
# load the iris dataset
data(iris)
# define training control
train_control <- trainControl(method="cv", number=10)

#ab hier verstehe ich den Code nicht mehr--> was bedeutet der Ausdruck "expand.grid(.fL=c(0), "
#kann man den AUsdruck vllt abändern, sodass ich dort mein lineares Modell einsetzen kann??
# fix the parameters of the algorithm
grid <- expand.grid(.fL=c(0), .usekernel=c(FALSE))    
# train the model
model <- train(Species~., data=iris, trControl=train_control, method="nb", tuneGrid=grid)
# summarize results
print(model)
Oder gibt es sonst Erfahrungen mit Paketen für die Kreuzvalidierung?

DANKE!

Re: Kreuzvalidierung

Verfasst: Di Dez 06, 2016 11:54 am
von Curnen

Code: Alles auswählen

grid <- expand.grid(.fL=c(0), .usekernel=c(FALSE)) 
Die Funktion expand.grid stammt nicht aus dem caret-Paket, sondern erstellt data.frames mit den möglichen Kombinationen. Für den gezeigten Code entspricht das nur einer Zeile, nämlich 0 und FALSE - das Prinzip hinter expand.grid wird mit dieser Variante vermutlich klarer:

Code: Alles auswählen

grid.mod <- expand.grid(.fL=c(0:1), .usekernel=c(FALSE,TRUE)) 
Das erzeugte Grid enthält nun die Parameter für die funktion train mit der Methode nb, nämlich .fL=0 und usekernel=FALSE. Würdest du der train Funktion nun das modifizierte Bespiel grid.mod übergeben, würde sie nacheinander für alle vier Parameterkombinationen einen Modell "trainieren".

Letztlich führt der Beispielcode also die Methode ein, wie man zur Optimierung diverse Parameterkombinationen unkompliziert übergeben kann.

Re: Kreuzvalidierung

Verfasst: Do Dez 08, 2016 10:34 am
von EDi
Ich möchte gerne eine Kreuzvalidierung meiner erstellten multiplen Regression durchführen!

Code: Alles auswählen

# train the model
model <- train(Species~., data=iris, trControl=train_control, method="nb", tuneGrid=grid)
Ein kleine Anmerkung am Rande:
Du machts hier keine multiple Regression, sondern eine Klassifikation via Naive Bayes... Sind natürlich nur Begrifflichkeiten...