KFold
PortfolioOptimisers.KFold Type
struct KFold{__T_n, __T_purged_size, __T_embargo_size} <: NonSequentialCrossValidationEstimatorImplements non-sequential k-fold cross-validation with optional purging and embargoing of training samples.
Fields
n: Number of folds.purged_size: Number of observations to purge between train and test sets.embargo_size: Number of observations to embargo after the test set.
Constructors
KFold(;
n::Integer = 5,
purged_size::Integer = 0,
embargo_size::Integer = 0,
) -> KFoldKeyword arguments correspond to the struct's fields.
Validation
nmust be non-empty, greater than zero, and finite.purged_sizeandembargo_sizemust be non-empty and finite.
Examples
julia> KFold(; n = 5, purged_size = 7, embargo_size = 11)
KFold
n ┼ Int64: 5
purged_size ┼ Int64: 7
embargo_size ┴ Int64: 11Related
sourcePortfolioOptimisers.KFoldResult Type
struct KFoldResult{__T_train_idx, __T_test_idx} <: NonSequentialCrossValidationResultResult type produced by KFold after splitting data into training and testing folds.
Stores the train and test index vectors for each fold.
Fields
train_idx: Training set indices.test_idx: Test set indices.
Constructors
KFoldResult(; train_idx::VecVecInt, test_idx::VecVecInt) -> KFoldResultKeywords correspond to the struct's fields.
Validation
!isempty(train_idx).!isempty(test_idx).length(train_idx) == length(test_idx).
Related
sourceBase.split Method
Base.split(kf::KFold, rd::ReturnsResult) -> KFoldResultSplit the returns data rd into n non-overlapping folds using k-fold cross-validation with optional purging and embargoing.
Arguments
kf::KFold: K-fold cross-validation estimator.rd::ReturnsResult: Returns data to split.
Returns
KFoldResult: Result containing train and test indices for each fold.
Related
source