Skip to content
11

Base search cross validation

PortfolioOptimisers.SearchCV Type
julia
const SearchCV = Union{<:KFold, <:KFoldResult, <:WalkForwardEstimator, <:WalkForwardResult}

Cross-validations compatible with search-based hyperparameter tuning.

source
PortfolioOptimisers.CrossValidationSearchScorer Type
julia
abstract type CrossValidationSearchScorer <: AbstractEstimator

Defines the interface for scoring strategies used in search cross-validation. Implementations select the optimal parameter set based on cross-validation scores.

Interfaces

  • (::CrossValidationSearchScorer)(scores::AbstractMatrix): Returns the index of the optimal parameter set.

Arguments

  • scores: Matrix of scores, where each column corresponds to a parameter set and each row to a cross-validation split.

Returns

  • Int: Index of the optimal parameter set.

Examples

julia
julia> struct MyScore <: PortfolioOptimisers.CrossValidationSearchScorer end

julia> (s::MyScore)(X::Matrix{Float64}) = argmin(dropdims(mean(X; dims = 1); dims = 1))

julia> scores = [0.5 0.6; 0.7 0.8];

julia> scorer = MyScore()
MyScore()

julia> scorer(scores)
1

Related Types

source
PortfolioOptimisers.CrossValSearchScorer Type
julia
const CrossValSearchScorer = Union{<:CrossValidationSearchScorer, <:Function}

Union type for search cross-validation scoring strategies. Accepts either a subtype of CrossValidationSearchScorer or a plain function that accepts a matrix and returns an integer.

source
PortfolioOptimisers.AbstractSearchCrossValidationResult Type
julia
abstract type AbstractSearchCrossValidationResult <: AbstractResult

Abstract result type for search-based cross-validation routines. Serves as the parent for all result types produced by search cross-validation algorithms, encapsulating optimal estimator, score matrices, parameter grid, and selected index.

Interfaces

  • Subtypes must store the optimal estimator, test and train scores, parameter grid, and selected index.
source
PortfolioOptimisers.SearchCrossValidationResult Type
julia
struct SearchCrossValidationResult{T1, T2, T3, T4, T5, T6} <:
       AbstractSearchCrossValidationResult
    opt::T1
    test_scores::T2
    train_scores::T3
    lens_grid::T4
    val_grid::T5
    idx::T6
end

Result type for search-based cross-validation routines. Stores the optimal estimator, score matrices, parameter grid, and selected index for hyperparameter search.

Fields

  • opt: Optimal estimator instance after search.

  • test_scores: Matrix of test scores for each parameter set and CV split.

  • train_scores: Matrix of training scores for each parameter set and CV split (or nothing if not recorded).

  • lens_grid: Vector of lens objects for parameter access.

  • val_grid: Vector of parameter values for each configuration.

  • idx: Index of the selected optimal parameter set.

Examples

Related

source
PortfolioOptimisers.fit_and_score Function
julia
fit_and_score(opt::NonFiniteAllocationOptimisationEstimator,
              scv::AbstractSearchCrossValidationEstimator,
              rd::ReturnsResult,
              train_idx::VecInt,
              test_idx::VecInt)

Fits a portfolio optimisation estimator on training data, scores it on test and train splits, and returns the scores for search-based cross-validation routines.

Arguments

  • opt: Portfolio optimisation estimator to fit.

  • scv: Search cross-validation estimator specifying risk measure and options.

  • rd: Returns result containing asset returns data.

  • train_idx: Indices for training split.

  • test_idx: Indices for test split.

Returns

  • test_score::Number: Test score.

  • train_score::Option{<:Number}: Train score.

Details

  • Fits the estimator on training data.

  • Predicts on test data using the fitted estimator.

  • Computes risk scores for test and train splits.

  • Applies sign convention based on risk measure direction.

  • Returns scores for use in search cross-validation.

Related

Examples

source