TSAModelCalibration¶
TSA (Temporal Self-Attention) model calibration step using monotone B-spline calibration for converting raw prediction scores to well-calibrated probabilities for fraud detection
SageMaker step type |
|
Node type |
internal (consumes upstream, produces downstream) |
Container entry point |
|
Interface file |
|
Compute¶
Compute kind |
|
Functionality¶
Contract for TSA model calibration processing step.
The TSA model calibration step implements monotone B-spline calibration specifically for Temporal Self-Attention fraud detection models. It converts raw model prediction scores into well-calibrated probabilities using constrained optimization, which is essential for risk-based decision-making and reliable fraud detection thresholds.
This calibration method is based on the generic_rfuge.r approach and uses:
B-spline basis functions with adaptive knot placement
Monotonicity constraints to ensure score ordering preservation
Iterative reweighted least squares (IRLS) with quadratic programming
Emphasis on high-score regions (90th-100th percentile) for fraud detection
Input Structure:
/opt/ml/processing/input/eval_data: Evaluation dataset with ground truth labels and model predictions
Supports multiple formats: CSV, TSV, Parquet
Can handle nested tarballs from SageMaker training job outputs
Expected columns: label field (ground truth) and score field (raw predictions)
Output Structure:
/opt/ml/processing/output/calibration: Calibration model artifacts
calibration_model.pkl: Pickled B-spline calibrator (for backward compatibility)
tsa_bspline_calibrator.json: JSON format calibrator (for inspection)
tsa_calibration_summary.json: Summary of calibration results
/opt/ml/processing/output/metrics: Calibration quality metrics and visualizations
tsa_calibration_metrics.json: Comprehensive metrics (ECE, MCE, Brier score, AUC)
tsa_reliability_diagram.png: Visual comparison of uncalibrated vs calibrated
/opt/ml/processing/output/calibrated_data: Dataset with calibrated probabilities
Original format preserved (CSV/TSV/Parquet)
New column: calibrated_{SCORE_FIELD}
All original columns retained
Command-Line Arguments:
job-type: Determines data loading strategy
“training”: Uses nested tarball extraction for training job outputs
“calibration”/”validation”/”testing”: Uses standard data loading
Environment Variables (Required):
CALIBRATION_METHOD: Calibration method to use (currently only “bspline” supported)
LABEL_FIELD: Name of the ground truth label column (e.g., “is_abusive_mdr”)
SCORE_FIELD: Name of the raw prediction score column (e.g., “prob_class_1”)
Environment Variables (Optional - B-spline Configuration):
BSPLINE_DEGREE: Degree of B-spline basis functions (default: 3 for cubic splines)
ADAPTIVE_KNOTS: Whether to use adaptive knot placement based on data size (default: True)
BASE_KNOTS: Fixed number of knots to use (overrides adaptive if set)
Environment Variables (Optional - Quality Thresholds):
MIN_RECORDS: Minimum number of records required for calibration (default: 1000)
MIN_FRAUD: Minimum number of fraud cases required (default: 10)
MAX_COEF_THRESHOLD: Maximum acceptable coefficient magnitude (default: 1e12)
MIN_UNIQUE_VALUES: Minimum unique calibrated predictions required (default: 10)
Environment Variables (Optional - Optimization Parameters):
LAMBDA_SMOOTH: Smoothness penalty for P-spline regularization (default: 1e-10)
MAX_ITER: Maximum iterations for IRLS optimization (default: 1000)
TOLERANCE: Convergence tolerance for coefficient updates (default: 1e-6)
Infrastructure:
USE_SECURE_PYPI: Whether to use secure CodeArtifact PyPI for package installation (default: false)
Key Features:
Monotone B-spline calibration preserves score ordering
Adaptive knot placement with emphasis on high-score regions
Format preservation for input/output data (CSV/TSV/Parquet)
Nested tarball support for SageMaker training job outputs
Comprehensive metrics: ECE, MCE, Brier score, AUC
Visual reliability diagrams for calibration quality assessment
Quality validation with automatic status determination
Calibration Quality Metrics:
Expected Calibration Error (ECE): Average calibration error across bins
Maximum Calibration Error (MCE): Worst-case calibration error
Brier Score: Mean squared difference between predictions and outcomes
AUC-ROC: Area under receiver operating characteristic curve
Model MSE: Mean squared error of fitted B-spline
Coefficient magnitude: Maximum absolute coefficient value
Unique predictions: Number of distinct calibrated probabilities
Success Criteria:
Convergence: IRLS optimization converges within MAX_ITER iterations
No NaN coefficients: All B-spline coefficients are finite
Sufficient unique values: At least MIN_UNIQUE_VALUES distinct predictions
MSE improvement: Model MSE better than baseline (mean prediction)
Coefficient stability: Maximum coefficient below MAX_COEF_THRESHOLD
Supported Job Types:
training: Extracts data from nested tarballs (output.tar.gz -> val.tar.gz/test.tar.gz)
calibration: Standard data loading for dedicated calibration datasets
validation: Standard data loading for validation datasets
testing: Standard data loading for test datasets
Performance Optimizations: The script includes transparent I/O optimizations that automatically improve performance without requiring any configuration changes:
PyArrow-based Parquet I/O:
Uses PyArrow engine for Parquet files when available (30-50% faster loading)
Writes Parquet with Snappy compression (40-60% smaller files, 20-30% faster)
Automatic fallback to default pandas engine if PyArrow unavailable
No configuration required - optimizations are transparent
Enhanced Logging:
Tracks file sizes, row counts, and column counts during I/O operations
Reports detected file formats and compression ratios
Provides visibility into I/O performance
Format Preservation:
Input format automatically detected (CSV, TSV, or Parquet)
Output saved in same format as input for consistency
Parquet format recommended for best performance (2x faster, 60% smaller)
Expected Performance:
Small datasets (<100K rows): 20-40% faster I/O
Medium datasets (1M rows): 30-50% faster I/O, 40-60% smaller files
Large datasets (>10M rows): 40-60% faster I/O, significant memory savings
The optimizations primarily benefit data I/O operations. Calibration optimization itself (B-spline fitting) remains CPU-bound and represents the main processing time. Overall speedup for typical calibration workflows: ~30-40% faster end-to-end.
Inputs (dependencies)¶
Input |
Type |
Required |
Compatible producers |
|---|---|---|---|
|
|
yes |
TabularPreprocessing, TSAPreprocessing, TSATabularPreprocessing, DataPreprocessing |
|
|
yes |
TSATraining, TSAModelEval, PyTorchTraining, PyTorchModelEval, XGBoostTraining, XGBoostModelEval, LightGBMTraining, LightGBMModelEval, ModelEvaluation, TrainingEvaluation |
Outputs¶
Output |
Type |
|---|---|
|
|
|
|
|
|
Consumers (downstream steps)¶
No cataloged step lists this step as a compatible source (it may be a terminal/sink step, or consumed via a generic source name).
Framework requirements¶
Package |
Version |
|---|---|
|
|
|
|
|
|
|
|
|
|