k-fache Kreuzvalidierung für Random Forest

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

Moderatoren: EDi, jogo

jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: k-fache Kreuzvalidierung für Random Forest

Beitrag von jogo »

Hallo Mia,
und welche Werte möchtest Du nun speichern?
Mia89
Beiträge: 15
Registriert: Sa Mär 30, 2019 12:39 pm

Re: k-fache Kreuzvalidierung für Random Forest

Beitrag von Mia89 »

Hallo Jörg,
ich wollte dann die vorhergesagten AUC Werte speichern und den Durchschnitt pro Parameterkombination über die Folds bilden.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: k-fache Kreuzvalidierung für Random Forest

Beitrag von jogo »

Hallo Mia,

ich bin mir nicht ganz sicher, ob das alles so richtig ist für den Einsatz bei Dir, aber als Quelle für die passende Idee könnte es vielleicht fungieren:

Code: Alles auswählen

set.seed(1234)

Params <- expand.grid(n.trees=c(200, 500, 600), mtry=seq(2, 8, by=2))
Params$auc <- NA

training$folds <- sample(1:nrow(Params), nrow(training), replace=TRUE)

#Schleife für folds
set.seed(1234)

for(i in 1:nrow(Params)) {
  validation_indices <- which(training$folds == i, arr.ind = TRUE)
  validation_data    <- data.train[validation_indices,]
  training_data      <- data.train[-validation_indices,]
  
  new.rf <-randomForest(x= training_data, y=as.factor(training.mt.y),
                        n.trees=Params$n.trees[i], mtry=Params$mtry[i], importance=TRUE, do.trace=20)
  new.pred <- predict(new.rf, validation_data)
  Params$auc[i] <- auc(roc(training$new.pred, training$class))  
  # ...
}
mean(Params$auc)
Gruß, Jörg
Mia89
Beiträge: 15
Registriert: Sa Mär 30, 2019 12:39 pm

Re: k-fache Kreuzvalidierung für Random Forest

Beitrag von Mia89 »

Vielen Dank Jörg, ich werde es mal austesten, vielleicht klappt es ja! :)
Antworten