Kreuzvalidierung

Wie erweitere ich R um eigene Funktionen oder Pakete? Welches Paket ist passend für meine Fragestellung?

Moderatoren: EDi, jogo

Antworten
anna_stat

Kreuzvalidierung

Beitrag 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!
Curnen
Beiträge: 27
Registriert: Fr Nov 18, 2016 3:45 pm

Re: Kreuzvalidierung

Beitrag 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.
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Kreuzvalidierung

Beitrag 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...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten