pdmlabs.method.sklearn_regression_wraper#
Classes
|
|
|
Base class for sklearn regressors following the RUL interface. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- class pdmlabs.method.sklearn_regression_wraper.AdaBoostRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
AdaBoostRegressor
- class pdmlabs.method.sklearn_regression_wraper.BaseSklearnRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
SupervisedMethodInterfaceBase class for sklearn regressors following the RUL interface.
- MODEL_CLASS = 'sklearn'#
- fit(historic_data: list[DataFrame], historic_sources: list[str], event_data: DataFrame, anomaly_ranges: list[list]) None#
Train anomaly detection model on labeled data.
Fits the model to distinguish normal from anomalous behavior using provided training data and labels.
- Parameters:
historic_data (list[pd.DataFrame]) – List of training DataFrames, one per source. Each DataFrame has: - Columns: feature names (sensor readings, computed metrics) - Index: datetime (must be sorted) - Shape: (num_samples, num_features) All DataFrames should have same features.
historic_sources (list[str]) – Source identifiers corresponding to historic_data. Example: [‘bearing_1’, ‘bearing_2’, ‘pump_1’]. Length must match len(historic_data).
event_data (pd.DataFrame) – Event log for context. Columns should include ‘date’, ‘type’ (‘failure’, ‘reset’, etc.), ‘source’, and optional ‘description’. Can help training identify event patterns or validate training data selection.
anomaly_ranges (list[list]) –
Labels marking anomalous time periods. Structure: list of lists where element i corresponds to historic_sources[i]. Each element is list of time indices or ranges marking anomalies. Examples: - Index-based: [[10:50, 100:120], [5:30]] (indices start:end) - Boolean: [pd.Series([0,1,0,…]), pd.Series([0,0,1,…])]
Use case: If bearing_1 has anomalies from idx 10-50, anomaly_ranges[0] includes that range.
- Returns:
Modifies internal state to store fitted model.
- Return type:
None
- Raises:
ValueError – If data shapes don’t match or labels invalid.
NotImplementedError – Implementation not complete (abstract).
Notes
Implementations may copy historic_data if they need to store it
Training may take significant time for large datasets
After fit(), predict() can be called
Multiple fit() calls should retrain (not append)
Examples
>>> # Binary labels (0/1 for each sample) >>> labels = [np.array([0, 0, 1, 1, 0, ...]), np.array([0, 0, 0, ...])] >>> method.fit(data, sources, events, labels) >>> >>> # Time ranges (list of anomalous periods) >>> anomaly_periods = [ ... [(start_idx1, end_idx1), (start_idx2, end_idx2)], ... [(start_idx3, end_idx3)], ... ] >>> method.fit(data, sources, events, anomaly_periods)
- get_all_models()#
Return reference to internal model(s).
Returns model instances for inspection, export, or further processing. Structure depends on method - may return single model or dict of models.
- Returns:
- Underlying model object(s). Examples:
Single model: sklLearn model instance
Multiple models: {‘bearing_1’: model1, ‘bearing_2’: model2}
None: If model is not accessible/applicable
- Return type:
model or dict
- get_library() str#
Return the underlying library/framework name.
- Returns:
- Name of library used (e.g., ‘sklearn’, ‘torch’, ‘custom’).
Used for dependency tracking and method categorization.
- Return type:
str
- get_params() dict#
Return hyperparameters and configuration.
- Returns:
- Dictionary of hyperparameters (e.g.,
{‘n_neighbors’: 5, ‘contamination’: 0.1}). Useful for logging, model comparison, and reproducibility.
- Return type:
dict
- predict(target_data: DataFrame, source: str, event_data: DataFrame) list[float]#
Predict anomaly scores for batch of samples (offline mode).
Computes anomaly score for each row in target_data independently. Higher scores indicate more anomalous behavior.
- Parameters:
target_data (pd.DataFrame) – Feature matrix with dates in index, features in columns. Must have same features as training data.
source (str) – Source identifier (e.g., ‘bearing_1’). Used to select source-specific model if method maintains multiple models.
event_data (pd.DataFrame) – Event log with columns ‘date’, ‘type’, ‘source’, ‘description’. Can be used for context-aware scoring.
- Returns:
- Anomaly scores (float) with length = target_data.shape[0].
Score range and semantics depend on method: - Distance-based: typically [0, ∞) where higher = more anomalous - Probability-based: typically [0, 1] or (-∞, 0] log-likelihood - Reconstruction-based: typically [0, ∞) reconstruction error
- Return type:
list
Examples
>>> method = SomeAnomalyDetector(event_preferences={...}) >>> method.fit([df_train], ['bearing_1'], events_df, labels) >>> df_test = pd.DataFrame([feature values], index=[dates]) >>> scores = method.predict(df_test, 'bearing_1', events_df) >>> print(len(scores), scores[0]) # (100, 0.45)
- Raises:
NotImplementedError – If method hasn’t been fit (for supervised methods).
- predict_one(new_sample: Series, source: str, is_event: bool) float#
Predict anomaly score for single sample (online/streaming mode).
Computes anomaly score for one observation at a time. Useful for: - Real-time anomaly detection - Online learning scenarios - Memory-efficient processing
May maintain internal state (buffers, windows) for context-aware scoring.
- Parameters:
new_sample (pd.Series) – Single observation with feature values. Index should contain feature names matching training data.
source (str) – Source identifier for source-specific models.
is_event (bool) – Whether this sample is from an event timestamp. Can affect how method processes the sample (e.g., special handling for known events vs normal operation).
- Returns:
Anomaly score for this single sample (same scale as predict()).
- Return type:
float
Examples
>>> method = SomeAnomalyDetector(event_preferences={...}) >>> method.fit([df_train], ['bearing_1'], events_df, labels) >>> >>> # Online scoring >>> for idx, row in df_test.iterrows(): ... is_event = idx in event_timestamps ... score = method.predict_one(row, 'bearing_1', is_event) ... print(f'{idx}: {score}')
- class pdmlabs.method.sklearn_regression_wraper.BayesianRidgeRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
BayesianRidge
- class pdmlabs.method.sklearn_regression_wraper.DecisionTreeRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
DecisionTreeRegressor
- class pdmlabs.method.sklearn_regression_wraper.ElasticNetRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
ElasticNet
- class pdmlabs.method.sklearn_regression_wraper.GPRRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
GaussianProcessRegressor
- class pdmlabs.method.sklearn_regression_wraper.GradientBoostingRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
GradientBoostingRegressor
- class pdmlabs.method.sklearn_regression_wraper.KNNRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
KNeighborsRegressor
- class pdmlabs.method.sklearn_regression_wraper.KernelRidgeRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
KernelRidge
- class pdmlabs.method.sklearn_regression_wraper.LassoRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
Lasso
- class pdmlabs.method.sklearn_regression_wraper.LinearRegressionRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
LinearRegression
- class pdmlabs.method.sklearn_regression_wraper.MLPRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
MLPRegressor
- class pdmlabs.method.sklearn_regression_wraper.RandomForestRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
RandomForestRegressor
- class pdmlabs.method.sklearn_regression_wraper.RidgeRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
Ridge
- class pdmlabs.method.sklearn_regression_wraper.SVRRUL(event_preferences: EventPreferences, save_model=False, *args, **kwargs)#
Bases:
BaseSklearnRUL- MODEL_CLASS#
alias of
SVR