Demonstration for the process of cross-validation

Share:

Description

This function uses rectangles to illustrate the k folds and mark the test set and the training set with different colors.

Usage

1
cv.ani(x = runif(150), k = 10, col = c("green", "red", "blue"), pch = c(4, 1), ...)

Arguments

x

a numerical vector which stands for the sample points.

k

an integer: how many parts should we split the data into? (comes from the k-fold cross-validation.)

col

a character vector of length 3 specifying the colors of: the rectangle representing the test set, the points of the test set, and points of the training set.

pch

a numeric vector of length 2 specifying the symbols of the test set and training set respectively.

...

other arguments passed to plot.default

Details

Briefly speaking, the process of cross-validation is just to split the whole data set into several parts and select one part as the test set and the rest parts as the training set.

The computation of sample sizes is base on kfcv.

Value

None (invisible NULL).

Note

For the ‘leave-one-out’ cross-validation, just specify k as length(x), then the rectangles will ‘shrink’ into single lines.

The final number of animation frames is the smaller one of ani.options('nmax') and k.

This function has nothing to do with specific models used in cross-validation.

Author(s)

Yihui Xie

See Also

kfcv

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
oopt = ani.options(interval = 2, nmax = 15)
cv.ani(main = "Demonstration of the k-fold Cross Validation", bty = "l")

## leave-one-out CV
cv.ani(x = runif(15), k = 15)

## save the animation in HTML pages
saveHTML({
    ani.options(interval = 2)
    par(mar = c(3, 3, 1, 0.5), mgp = c(1.5, 0.5, 0), tcl = -0.3)
    cv.ani(bty = "l")
}, img.name = "cv.ani", htmlfile = "cv.ani.html", ani.height = 400, 
    ani.width = 600, title = "Demonstration of the k-fold Cross Validation", 
    description = c("This is a naive demonstration for the k-fold cross", 
        "validation. The k rectangles in the plot denote the k folds of data.", 
        "Each time a fold will be used as the test set and the rest parts", 
        "as the training set."))

ani.options(oopt)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.