cv_krr: KRR with cross-validation

Description Usage Arguments Examples

Description

KRR with cross-validation

Usage

1
cv_krr(nfolds, K, y, gamma)

Arguments

nfolds
K
y
gamma

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function (nfolds, K, y, gamma) 
{
    y_pred_all <- double()
    y_exp_all <- double()
    new_ind <- double()
    for (ifold in 1:nfolds) {
        ind <- 1:length(y)
        ind_train <- ind[ind%%nfolds != ifold - 1]
        ind_test <- ind[ind%%nfolds == ifold - 1]
        K_train <- K[ind_train, ind_train]
        K_test <- K[ind_test, ind_train]
        y_train <- y[ind_train]
        y_test <- y[ind_test]
        m <- build_krr_model(K_train, y_train, gamma, set_b_0)
        if (is.null(m)) 
            next
        y_exp_all <- c(y_exp_all, y_test)
        y_pred <- K_test %*% m$a + m$b
        y_pred_all <- c(y_pred_all, y_pred)
        new_ind <- c(new_ind, ind_test)
    }
    old_ind <- double(length(y))
    for (i in 1:length(y)) old_ind[new_ind[i]] <- i
    regr <- regr_param(y_pred_all, y_exp_all)
    list(R2 = regr$R2, RMSE = regr$RMSE, y_pred_cv = y_pred_all[old_ind])
  }

conmolfields documentation built on May 2, 2019, 4:18 p.m.