Grid search cross validation
PortfolioOptimisers.GridSearchCrossValidation Type
struct GridSearchCrossValidation{T1, T2, T3, T4, T5, T6, T7} <:
AbstractSearchCrossValidationEstimator
p::T1
cv::T2
r::T3
scorer::T4
ex::T5
train_score::T6
kwargs::T7
endPerforms grid search cross-validation for portfolio optimisation estimators. Iterates over parameter grids, applies cross-validation splits, and scores each configuration to select the optimal parameters.
Fields
p: Parameter grid for optimisation.cv: Cross-validation splitter (e.g., KFold).r: Risk measure used for scoring (e.g., ConditionalValueatRisk).scorer: Scoring function to select optimal parameter set.ex: Parallel execution strategy (e.g., FLoops.ThreadedEx).train_score: Whether to record training scores.kwargs: Additional keyword arguments for customisation.
Constructors
GridSearchCrossValidation(p::MultiGSCVValType_VecMultiGSCVValType; cv::SearchCV = KFold(),
r::AbstractBaseRiskMeasure = ConditionalValueatRisk(),
scorer::CrossValSearchScorer = HighestMeanScore(),
ex::FLoops.Transducers.Executor = FLoops.ThreadedEx(),
train_score::Bool = false, kwargs::NamedTuple = (;))- Arguments correspond to fields above.
Validation
@argcheck(!isempty(p), IsEmptyError): Parameter grid must not be empty.If
pis a vector of parameter sets, each must not be empty.All validations use custom error types.
Examples
julia> GridSearchCrossValidation(Dict("alpha" => [0.1, 0.2], "beta" => [1.0, 2.0]))
GridSearchCrossValidation
p ┼ Dict{String, Vector{Float64}}: Dict("alpha" => [0.1, 0.2], "beta" => [1.0, 2.0])
cv ┼ KFold
│ n ┼ Int64: 5
│ purged_size ┼ Int64: 0
│ embargo_size ┴ Int64: 0
r ┼ ConditionalValueatRisk
│ settings ┼ RiskMeasureSettings
│ │ scale ┼ Float64: 1.0
│ │ ub ┼ nothing
│ │ rke ┴ Bool: true
│ alpha ┼ Float64: 0.05
│ w ┴ nothing
scorer ┼ HighestMeanScore()
ex ┼ Transducers.ThreadedEx{@NamedTuple{}}: Transducers.ThreadedEx()
train_score ┼ Bool: false
kwargs ┴ @NamedTuple{}: NamedTuple()Related
PortfolioOptimisers.search_cross_validation Method
search_cross_validation(opt::NonFiniteAllocationOptimisationEstimator,
gscv::GridSearchCrossValidation,
rd::ReturnsResult)Performs grid search cross-validation for portfolio optimisation estimators. Iterates over parameter grids, applies cross-validation splits, fits and scores each configuration, and selects the optimal parameters using the provided scoring strategy.
Arguments
opt: Portfolio optimisation estimator to be tuned.gscv: Grid search cross-validation estimator specifying parameter grid, CV splitter, risk measure, scorer, execution strategy, and options.rd: Returns result containing asset returns data.
Returns
SearchCrossValidationResult: Result type containing the optimal estimator, test and train scores, parameter grid, and selected index.
Validation
Ensures parameter grid is not empty.
Validates cross-validation splits and indices.
Details
Iterates over all parameter combinations in the grid.
Applies cross-validation splits to the returns data.
Fits the estimator for each parameter set and split.
Scores each configuration using the specified risk measure and scoring function.
Selects the optimal parameter set based on cross-validation scores.
Returns a result object encapsulating the optimal estimator and score matrices.
Related
[
NonFiniteAllocationOptimisationEstimator]-(@ref)
Examples
source