cursus.processing.numerical.streaming_numerical_imputation_processor¶
Streaming Numerical Imputation Processor - IterableDataset Support
This processor extends NumericalVariableImputationProcessor to support fitting from PipelineIterableDataset by accumulating statistics incrementally.
Key Features: - Single-pass streaming accumulation - Memory-efficient (no full dataset loading) - Online mean/median/mode computation - Same process()/transform() API as base processor - Batch fitting for multiple fields (10x faster than individual fitting)
- class StreamingNumericalImputationProcessor(column_name, imputation_value=None, strategy=None)[source]¶
Bases:
NumericalVariableImputationProcessorStreaming-aware numerical imputation processor.
Extends NumericalVariableImputationProcessor to support fitting from PipelineIterableDataset by accumulating statistics incrementally.
Uses online algorithms for efficient single-pass statistics computation: - Mean: Running sum and count - Median: Approximate using sample collection (memory-limited) - Mode: Approximate using sample collection (memory-limited)
Examples
>>> # Create streaming processor >>> proc = StreamingNumericalImputationProcessor( ... column_name='age', ... strategy='mean' ... ) >>> >>> # Fit from streaming dataset >>> proc.fit_streaming(train_iterable_dataset) >>> >>> # Use in pipeline (same API as base processor) >>> dataset.add_pipeline('age', proc)
- fit_streaming(dataset, field_names=None, strategy=None, max_samples=None, median_sample_limit=100000, show_progress=False)[source]¶
Fit imputation values from streaming dataset.
Supports both single-field and multi-field (batch) fitting: - Single-field: Uses self.column_name, returns self for chaining - Multi-field: Processes all fields in ONE pass, returns Dict[field_name -> imputation_value]
- Parameters:
dataset (torch.utils.data.IterableDataset) – PipelineIterableDataset to stream from
field_names (List[str] | None) – Optional list of fields for batch fitting. If None, uses self.column_name
strategy (str | None) – Optional strategy override (‘mean’, ‘median’, ‘mode’). If None, uses self.strategy
max_samples (int | None) – Optional limit on samples processed (for early stopping)
median_sample_limit (int) – Max samples to keep for median/mode computation
show_progress (bool) – Whether to show progress bar (for batch mode)
- Returns:
self (for method chaining) - Multi-field mode: Dict[field_name -> imputation_value]
- Return type:
Single-field mode
- Raises:
ValueError – If strategy is unknown
- fit(X, y=None)[source]¶
Fit imputation value from data.
Automatically detects input type and delegates to appropriate method: - IterableDataset: uses fit_streaming() - Series/DataFrame: uses parent class fit()
- Parameters:
X (Series | DataFrame | torch.utils.data.IterableDataset) – Series, DataFrame, or IterableDataset
y (Series | None) – Ignored (for sklearn compatibility)
- Returns:
self (for method chaining)
- Return type: