Skip to content

Latest commit

 

History

History
56 lines (41 loc) · 2.42 KB

File metadata and controls

56 lines (41 loc) · 2.42 KB

Preprocessing Bindings Decision Documentation

Decision Summary

Status: REMOVED - Preprocessing bindings placeholder eliminated from codebase

Date: December 4, 2025

Rationale: Comprehensive preprocessing functionality already exists through accuracy_bindings.cpp

Analysis Summary

Current Preprocessing Coverage

The KortexDL framework already provides complete preprocessing functionality through multiple channels:

  1. DataNormalization.hpp - Core Z-score normalization utilities
  2. AccuracyUtils.hpp - Comprehensive DataNormalizer class with:
    • Z-score normalization
    • Min-Max scaling
    • Robust scaling
    • Polynomial feature generation
    • Outlier detection and handling
    • Data quality validation
  3. DataFrameLoader.hpp - Built-in normalization via configuration flags
  4. accuracy_bindings.cpp - Full Python bindings via PyDataNormalizer class

Usage Evidence

Python examples actively use preprocessing through:

  • PyDataNormalizer class for feature/target normalization
  • DataFrameLoader automatic normalization
  • Network built-in preprocessing methods
  • Comprehensive accuracy monitoring with denormalization

Architecture Assessment

The current design properly centralizes preprocessing functionality within the accuracy/utils module, which is the logical architectural location for data preprocessing operations.

Implementation Changes

Files Modified

  1. Deleted: python_bindings/src/bindings/preprocessing_bindings.cpp - Empty placeholder file
  2. Modified: python_bindings/src/bindings/main_module.cpp - Removed preprocessing binding references
  3. Modified: python_bindings/CMakeLists.txt - Removed preprocessing_bindings.cpp from build

Build System Impact

  • Reduced compilation time by eliminating unnecessary source file
  • Cleaner module initialization without empty binding function
  • Maintained all existing preprocessing functionality

Conclusion

The preprocessing bindings placeholder served no functional purpose as comprehensive preprocessing capabilities are fully exposed through the existing accuracy_bindings.cpp implementation. The removal improves code maintainability while preserving all user-facing functionality.

Users continue to access preprocessing through:

  • kortexdl.PyDataNormalizer - Primary preprocessing interface
  • kortexdl.create_dataloader() - Automatic data normalization
  • Network preprocessing methods - Built-in data preprocessing