sammo.search

sammo.search#

Module Contents#

Classes#

Optimizer

BeamSearch

RegularizedEvolution

SequentialSearch

EnumerativeSearch

Data#

logger

API#

sammo.search.logger = 'getLogger(...)'#
class sammo.search.Optimizer(runner: sammo.base.Runner, search_space: collections.abc.Callable[[], sammo.components.Output] | None, objective: collections.abc.Callable[[sammo.data.DataTable, sammo.data.DataTable, bool], float], maximize: bool = False)#

Initialization

REPORT_COLUMNS = ('objective', 'costs')#
argbest(x, key='objective')#
argsort(x, key='objective')#
break_even(baseline_costs, weights=None)#
fit(dataset: sammo.data.DataTable)#
fit_transform(dataset: sammo.data.DataTable) sammo.data.DataTable#
score(dataset: sammo.data.DataTable, **kwargs) dict#
transform(dataset: sammo.data.DataTable, **kwargs) sammo.data.DataTable#
property best: dict#
property best_score#
property best_prompt: sammo.components.Output#
property fit_costs#
save(fname: str | pathlib.Path | None = None, **extra_info)#
show_report()#
async evaluate(candidates: list[sammo.components.Output], runner: sammo.base.Runner, objective: collections.abc.Callable[[sammo.data.DataTable, sammo.data.DataTable], sammo.base.EvaluationScore], dataset: sammo.data.DataTable, colbar: sammo.compactbars.CompactProgressBars | None = None) list[dict]#
validate(dataset: sammo.data.DataTable, k_best=5)#
class sammo.search.BeamSearch(runner: sammo.base.Runner, mutator: sammo.mutators.Mutator, objective: collections.abc.Callable[[sammo.data.DataTable, sammo.data.DataTable, bool], float], maximize: bool = True, beam_width: int = 4, depth: int = 6, mutations_per_beam: int = 8, n_initial_candidates: int = 1, add_previous: bool = False, priors: beartype.typing.Literal[uniform] | dict = 'uniform', max_evals: int | None = None)#

Bases: sammo.search.Optimizer

Initialization

REPORT_COLUMNS = ('iteration', 'action', 'objective', 'costs', 'parse_errors', 'prev_actions')#
log(depth, items)#
async afit_transform(dataset: sammo.data.DataTable) sammo.data.DataTable#
class sammo.search.RegularizedEvolution(runner: sammo.base.Runner, mutator: sammo.mutators.Mutator, objective: collections.abc.Callable[[sammo.data.DataTable, sammo.data.DataTable, bool], float], maximize: bool = True, beam_width: int = 4, depth: int = 6, mutations_per_beam: int = 8, n_initial_candidates: int = 1, add_previous: bool = False, priors: beartype.typing.Literal[uniform] | dict = 'uniform', max_evals: int | None = None)#

Bases: sammo.search.BeamSearch

Initialization

class sammo.search.SequentialSearch(runner: sammo.base.Runner, mutator: sammo.mutators.Mutator, objective: collections.abc.Callable[[sammo.data.DataTable, sammo.data.DataTable, bool], float], maximize: bool = True, depth: int = 25)#

Bases: sammo.search.BeamSearch

Initialization

class sammo.search.EnumerativeSearch(runner: sammo.base.Runner, search_space: collections.abc.Callable[[], sammo.components.Output], objective: collections.abc.Callable[[sammo.data.DataTable, sammo.data.DataTable], sammo.base.EvaluationScore], maximize: bool = True, algorithm: beartype.typing.Literal[grid, random] = 'grid', max_candidates: int | None = None, n_evals_parallel: int = 2, mutate_from: sammo.components.Output | None = None, random_state: int = 42)#

Bases: sammo.search.Optimizer

Initialization

REPORT_COLUMNS = ('iteration', 'action', 'objective', 'costs', 'parse_errors')#
async afit_transform(dataset: sammo.data.DataTable) sammo.data.DataTable#