pdmlabs.experiment.batch.RUL_experiment

pdmlabs.experiment.batch.RUL_experiment#

Classes

SupervisedRULPdMExperiment(experiment_name, ...)

Supervised Remaining Useful Life (RUL) prediction experiment.

class pdmlabs.experiment.batch.RUL_experiment.SupervisedRULPdMExperiment(experiment_name: str, pipeline: PdMPipeline, param_space: dict, constraint_function: Callable = None, target_data: list[DataFrame] = None, target_sources: list[str] = None, historic_data: list[DataFrame] = [], historic_sources: list[str] = [], optimization_param: str = 'AD1_AUC', initial_random: int = 2, num_iteration: int = 20, batch_size: int = 1, n_jobs: int = 1, random_state: int = 42, random_n_tries: int = 3, constraint_max_retries: int = 10, historic_data_header: str = 'infer', target_data_header: str = 'infer', artifacts: str = 'artifacts', debug: bool = False, delay: float = None, log_best_scores: bool = False, maximize: bool = True, custom_evaluators: list = None)#

Bases: PdMExperiment

Supervised Remaining Useful Life (RUL) prediction experiment.

This experiment flavor is for RUL regression where: - Target is continuous (time to failure, cycles to failure, etc.) - Method must implement SupervisedMethodInterface with RUL prediction - Evaluation metrics are regression-based (MAE, MSE, etc.) not classification

Differs from anomaly detection experiments: - Predicts continuous RUL rather than binary anomalies - Evaluation based on prediction accuracy, not detection timing - May use different postprocessing

Useful for: - Predictive maintenance with remaining life estimates - RUL-aware planning and maintenance scheduling

Raises:

IncompatibleMethodException – If method is not SupervisedMethodInterface.

Examples

>>> experiment = SupervisedRULPdMExperiment(
...     experiment_name='rul-demo',
...     pipeline=pipeline,
...     param_space={'method_fit_intercept': [True, False]},
...     optimization_param='MAE'
... )
>>> results = experiment.execute()
execute() dict#

Run supervised RUL prediction experiment.

Trains RUL regression methods and evaluates on test scenarios:

  1. Fits method on labeled historic RUL data (once)

  2. For each target scenario: a. Preprocesses target data b. Predicts RUL values c. Compares against ground truth

  3. Returns best parameters

Returns:

Result dictionary with best_params, best_objective, and metrics.

Return type:

dict

Raises:

IncompatibleMethodException – If method is not SupervisedMethodInterface.