Randomised search cross validation
PortfolioOptimisers.RandomisedSearchCrossValidation Type
struct RandomisedSearchCrossValidation{__T_p, __T_cv, __T_r, __T_scorer, __T_ex, __T_n_iter, __T_rng, __T_seed, __T_train_score, __T_kwargs} <: AbstractSearchCrossValidationEstimatorRandomised search cross-validation estimator for portfolio optimisation. Samples parameter sets from distributions or vectors, applies cross-validation splits, fits and scores each configuration, and selects the optimal parameters using the provided scoring strategy.
Fields
p: Hyperparameter search grid.cv: Cross-validation estimator.r: Risk measure or vector of risk measures.scorer: Scoring function.ex: Parallel execution strategy.n_iter: Number of random iterations.rng: Random number generator.seed: Seed for the random number generator.train_score: Whether to also compute the training set score.kwargs: Additional keyword arguments.
Constructors
RandomisedSearchCrossValidation(
p::Union{AbstractVector{<:Pair{<:AbstractString, <:Any}},
AbstractVector{<:AbstractVector{<:Pair{<:AbstractString,
<:Any}}},
AbstractDict{<:AbstractString, <:Any},
AbstractVector{<:AbstractDict{<:AbstractString,
<:Any}}};
cv::SearchCV = KFold(),
r::AbstractBaseRiskMeasure = ConditionalValueatRisk(),
scorer::CrossValSearchScorer = HighestMeanScore(),
ex::FLoops.Transducers.Executor = FLoops.ThreadedEx(),
n_iter::Integer = 10,
rng::Random.AbstractRNG = Random.default_rng(),
seed::Option{<:Integer} = nothing,
train_score::Bool = false,
kwargs::NamedTuple = (;),
) -> RandomisedSearchCrossValidationKeyword arguments correspond to the struct's fields.
Validation
!isempty(p).If
pis a vector of parameter sets: each element must not be empty.All keys in
pmust be of typeGSCVKey(i.e.String,Symbol, orInteger).All values in
pmust be of typeRSCVVal(i.e. anAbstractVectororDistributions.Distribution).n_iter > 0and finite.
Examples
julia> RandomisedSearchCrossValidation(Dict("alpha" => [0.1, 0.2, 0.3],
"beta" => Normal(1.0, 0.5)))
RandomisedSearchCrossValidation
p ┼ Dict{String, Any}: Dict{String, Any}("alpha" => [0.1, 0.2, 0.3], "beta" => Distributions.Normal{Float64}(μ=1.0, σ=0.5))
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()
n_iter ┼ Int64: 10
rng ┼ Random.TaskLocalRNG: Random.TaskLocalRNG()
seed ┼ nothing
train_score ┼ Bool: false
kwargs ┴ @NamedTuple{}: NamedTuple()Related
PortfolioOptimisers.search_cross_validation Method
search_cross_validation(opt::NonFiniteAllocationOptimisationEstimator,
rscv::RandomisedSearchCrossValidation,
rd::ReturnsResult)Performs randomised search cross-validation for portfolio optimisation estimators. Samples parameter sets from distributions or vectors, 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.rscv: Randomised search cross-validation estimator specifying parameter grid, CV splitter, risk measure, scorer, execution strategy, number of iterations, RNG, 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.
Details
Samples parameter sets from vectors or distributions.
Applies cross-validation splits to the returns data.
Fits the estimator for each sampled 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
PortfolioOptimisers.make_p_grid Function
make_p_grid(p, n_iter, rng, ...)Build a randomised parameter grid from a specification.
Samples n_iter random parameter combinations from the provided distributions or ranges, for use in randomised search cross-validation.
Arguments
p: Parameter specification (pair, vector of pairs, or dictionary).n_iter: Number of random parameter combinations to sample.rng: Random number generator.Additional arguments.
Returns
- Vector of sampled parameter combinations.
Related
source