Build a k-fold cross validation splitter, respecting (never splitting) groupingColumn.

makekWayCrossValidationGroupedByColumn(groupingColumnName)

Arguments

groupingColumnName

name of column to group by.

Value

splitting function in the sense of vtreat::buildEvalSets.

Examples

d <- data.frame(y=sin(1:100)) d$group <- floor(seq_len(nrow(d))/5) splitter <- makekWayCrossValidationGroupedByColumn('group') split <- splitter(nrow(d),5,d,d$y) d$splitLabel <- vtreat::getSplitPlanAppLabels(nrow(d),split) rowSums(table(d$group,d$splitLabel)>0)
#> 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1