## Zur Musterlösung für die Aufgabe 1 der Serie 3 ## und als "Starthilfe" für Serie 4 im Block Datamining. CVtest.m <- function(fitPrFN, x.dat, yy.mult, k=10, verbose=TRUE, ...) { ## The y-labels == levels() : labs <- if(is.matrix(yy.mult)) colnames(yy.mult) else if(is.data.frame(yy.mult)) levels(yy.mult[,1]) else stop("'yy.mult' is wrong") n <- nrow(x.dat) ii <- sample(n) # Permutation aller j1 <- 1 # Start des ersten Blocks res <- character(n) # will contain class labels if(verbose) cat("fold ") for (i in 1:k) { if(verbose) { cat(i, ""); flush.console() } j2 <- (i*n) %/% k # Ende des i-ten Blocks [ganzzahlige Division] j <- ii[j1:j2] # Indizes der Test-Beob. im Fold i ## Berechnung der Vorhersagen prob <- fitPrFN(x.dat[-j,], yy.mult[-j,], x.new = x.dat[j,], ...) ## Berechnung der Klassen === res[j] <- labs[ apply(prob, 1, which.max) ] j1 <- j2 + 1 # Start des (i+1)-ten Blocks }; if(verbose) cat("\n") res ## Return: Klassierungen }