nirs4all.pipeline.dagml.full_train module

DAG-owned single full-training execution, with no invented cross-validation.

The host assembles the plan and supplies operator callbacks, as for the CV profile. Rust schedules one REFIT phase and owns its NodeResults and ScoreSet. The historical test-as-validation view is explicitly labeled; it never becomes a native OOF report or an independently validated model-selection claim.

exception nirs4all.pipeline.dagml.full_train.NoSplitEvaluationWarning[source]

Bases: UserWarning

A full-training run has no independent cross-validation evidence.

nirs4all.pipeline.dagml.full_train.run_by_source_auto_full_train(source_bodies: dict[str, list[Any]], y_steps: list[Any], spectro: Any, *, metric: str = 'rmse', task_type: str = 'regression', config_name: str = '', cli: str | None = None, venv_python: str | None = None, dataset_path: str | None = None, dataset_pickle: str | None = None, workdir: Any = None, random_state: int | None = None, train_sample_ids: list[int] | None = None) → RunResult[source]

Fit source-local models once each for a by_source auto merge without CV.

nirs4all.pipeline.dagml.full_train.run_full_train(pipeline: list[Any], spectro: Any, *, metric: str = 'rmse', task_type: str = 'regression', config_name: str = '', augmented_train: bool = False, cli: str | None = None, venv_python: str | None = None, dataset_path: str | None = None, dataset_pickle: str | None = None, workdir: Any = None, random_state: int | None = None, train_sample_ids: list[int] | None = None, base_fit_model_count: int = 0) → RunResult[source]

Fit one concrete pipeline once on selected train rows using the DAG scheduler.

No splitter, selection loop or legacy runner is introduced. Test rows are fitted only by an explicit fit_on_all=True transform. A test partition retains the historical val alias with explicit provenance; without test, only training predictions are exposed. cv_best_score stays NaN in both cases because no CV occurred.