package modelkit

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Modelkit.Randomized_search

Randomized search using the same evaluation, metadata, callback and refit contracts as Grid_search. Finite choice-only spaces sample Cartesian positions without replacement, capping iterations at the product size. Duplicate choice values can still yield equal configurations. If any axis uses a distribution, all axes sample with replacement. Candidate and axis identities derive deterministic sampling streams, separately from fit RNGs. Increasing iterations preserves the sampled prefix. Random identities do not reproduce NumPy streams.

type 'configuration axis
val axis : name:string -> distribution:'value Parameter_distribution.t -> encode:('value -> Grid_search.parameter_value) -> set:('configuration -> 'value -> ('configuration, Error.t) result) -> ('configuration axis, Error.t) result

Setters return new immutable configurations. Axis names must be nonblank and unique. Encoders and setters must be deterministic and must not mutate inputs.

type ('configuration, 'target, 'prediction) space
val create : ?iterations:int -> base:'configuration -> build:('configuration -> (('target, 'prediction) Pipeline.t, Error.t) result) -> 'configuration axis array -> (('configuration, 'target, 'prediction) space, Error.t) result

Defaults to ten iterations. An empty axis array samples the base once. Iterations must fit an array; finite Cartesian products must fit an OCaml integer. Sampling finite spaces uses storage proportional to iterations, without expanding the complete Cartesian product.

val candidate_count : ('configuration, 'target, 'prediction) space -> int
type 'configuration sampled_candidate = {
  1. sampled_parameters : Grid_search.parameter array;
  2. sampled_configuration : ('configuration, Error.t) result;
}
val sample : seed:Seed.t -> ('configuration, 'target, 'prediction) space -> 'configuration sampled_candidate array

Previews typed configurations and encoded parameters without building or fitting pipelines. Failed draws omit that axis's parameter; subsequent axes still draw after ordinary failures. The first ordinary failure is retained with candidate/axis context; control errors override it and stop remaining axis draws. Search draws candidates lazily inside candidate callbacks, so cancellation prevents sampling later candidates when no checkpoint is supplied. Checkpointed search prepares all configurations before evaluation to validate their identities; see Search_checkpoint.

type 'model report = 'model Grid_search.report
val candidates : 'model report -> 'model Grid_search.candidate array
val selection : 'model report -> ('model Grid_search.selected, Error.t) result
val refit_result : 'model report -> ('model Grid_search.selected option, Error.t) result
module Regression : sig ... end
module Binary_classification : sig ... end
module Multiclass_classification : sig ... end