package modelkit
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.
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) resultSetters return new immutable configurations. Axis names must be nonblank and unique. Encoders and setters must be deterministic and must not mutate inputs.
val create :
?iterations:int ->
base:'configuration ->
build:('configuration -> (('target, 'prediction) Pipeline.t, Error.t) result) ->
'configuration axis array ->
(('configuration, 'target, 'prediction) space, Error.t) resultDefaults 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 -> inttype 'configuration sampled_candidate = {sampled_parameters : Grid_search.parameter array;sampled_configuration : ('configuration, Error.t) result;
}val sample :
seed:Seed.t ->
('configuration, 'target, 'prediction) space ->
'configuration sampled_candidate arrayPreviews 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.reportval candidates : 'model report -> 'model Grid_search.candidate arrayval selection : 'model report -> ('model Grid_search.selected, Error.t) resultval refit_result :
'model report ->
('model Grid_search.selected option, Error.t) resultmodule Regression : sig ... endmodule Binary_classification : sig ... endmodule Multiclass_classification : sig ... end