
Randomized search with K-fold CV (Geron Ch 2, morie.fn grrnd)
Source:R/geron_train_native.R
morie_geron_randomized_search_cv.RdThe LCG stream is consumed first for the fold permutation (m draws,
argsorted stably) and then one draw PER PARAMETER per configuration,
in the order of param_dist. std_score is the ddof = 0 deviation.
Examples
if (requireNamespace("ranger", quietly = TRUE)) {
set.seed(3)
X <- matrix(rnorm(60), 30, 2)
y <- as.numeric(X[, 1] > 0)
fs <- function(Xtr, ytr, Xte, yte, params) {
b <- qr.solve(cbind(1, as.matrix(Xtr)), as.numeric(ytr))
pred <- as.numeric(cbind(1, as.matrix(Xte)) %*% b)
-mean((pred - yte)^2) * params$w
}
morie_geron_randomized_search_cv(X, y, param_dist = list(w = c(0.5, 2)),
n_iter = 3, K = 3, fit_score = fs)
}
#> $best_params
#> $best_params$w
#> [1] 0.5336829
#>
#>
#> $best_score
#> [1] -0.04705493
#>
#> $results
#> $results[[1]]
#> $results[[1]]$params
#> $results[[1]]$params$w
#> [1] 0.5336829
#>
#>
#> $results[[1]]$mean_score
#> [1] -0.04705493
#>
#> $results[[1]]$std_score
#> [1] 0.01707143
#>
#> $results[[1]]$fold_scores
#> [1] -0.04621495 -0.06837041 -0.02657944
#>
#>
#> $results[[2]]
#> $results[[2]]$params
#> $results[[2]]$params$w
#> [1] 1.305933
#>
#>
#> $results[[2]]$mean_score
#> [1] -0.1151444
#>
#> $results[[2]]$std_score
#> [1] 0.04177414
#>
#> $results[[2]]$fold_scores
#> [1] -0.11308896 -0.16730383 -0.06504045
#>
#>
#> $results[[3]]
#> $results[[3]]$params
#> $results[[3]]$params$w
#> [1] 1.74494
#>
#>
#> $results[[3]]$mean_score
#> [1] -0.1538518
#>
#> $results[[3]]$std_score
#> [1] 0.05581709
#>
#> $results[[3]]$fold_scores
#> [1] -0.15110535 -0.22354529 -0.08690468
#>
#>
#>
#> $fold_sizes
#> [1] 10 10 10
#>
#> $estimate
#> [1] -0.04705493
#>
#> $n
#> [1] 30
#>