PySATL CPD
API Reference
pysatl_cpd
algorithms
online
analysis
metrics
visualization
benchmark
online
benchmark
registry
scenarios
tooling
core
online
change_point_detector
detection_trace
single_run
data
dataset
generator
loaders
providers
typedefs
typedefs
base
frozendict
User Guide
01. PySATL Data API
Section 1. Orientation
What in this notebook
Interface Overview
Section 2. Providers
2.1 NDArrayUnivariateProvider
2.2 NDArrayMultivariateProvider
2.3 PandasDataProvider
Section 3. Labels, Segments, and Ground Truth
3.1 StateDescriptor
3.2 SegmentInfo
3.3 Change Points, States, and Transitions
3.4 Annotations
3.5 SegmentsLabeling
Section 4. Labeled Providers
4.1 PlainUnivariateLabeledData
4.2 PlainMultivariateLabeledData
4.3 PandasLabeledData
Section 5. Provider Operations
5.1 cut()
5.2 query_segments()
5.3 query_bisegments()
5.4 merge()
Section 6. Transformers
6.1 ColumnsSelectorTransformer
6.2 ColumnFeatureCreator
6.3 ComposedTransformer
6.4 Why transformations belong in the data layer
Section 7. Datasets
7.1 Creating a Dataset
7.2 filter_by_annotation(), filter_by_segments(), and filter_by_bisegments()
7.3 train_test_split() and merge()
7.4 StateDataset
Section 8. Loading Data From Files
8.1 FolderCsvColumns and load_folder_csv_dataset()
8.2 Why the loaded result matches the rest of the notebook
Section 9. End-to-End Mini Workflow
9.1 From generated series to benchmark-ready views
9.2 Final summary
02. PySATL Generator API
Section 1. Orientation
What in this notebook
Section 2. Scenario Model
2.1 ScenarioSpec
2.2 SegmentSpec
2.3 SegmentPlan
2.4 A complete first scenario
Section 3. Distribution Specifications
3.1 Univariate distributions
3.2 Multivariate normal generation
3.3 Independent multivariate columns
3.4 Choosing the right distribution family
Section 4. Building Useful Scenarios
4.1 A univariate mean-shift scenario
4.2 A multivariate machine-state scenario
4.3 Plan reuse and semantic metadata
Section 5. Running the Generator
5.1 GenericSeriesGenerator
5.2 Inspecting GeneratedSeries
5.3 Reproducibility with seeds
Section 6. Dataset Generation
6.1 LabeledDataGenerator protocol
6.2 ScenarioDatasetGenerator
6.3 Preset datasets
Section 7. Config-Driven Generation
7.1 scenario_from_mapping()
7.2 scenario_from_yaml()
7.3 scenarios_from_yaml()
Section 8. Bridging Into the Data API
8.1 Building labeled providers from generated output
8.2 What to inspect first after conversion
Section 9. Final Recap
03. PySATL CPD API: Change Point Detection
Section 1. Orientation
What in this notebook
Core Concepts and Notation
Section 2. Online Detection. The Running Example
2.1 A compact mean-shift scenario
2.2 Why one provider is enough for this chapter
Section 3. Online Algorithms
3.1 OnlineAlgorithm as the stateful runtime core
3.2 A primitive custom algorithm
3.3 ShewhartControlChart as the running algorithm
3.4 Processing observations directly
Section 4. Wrapping all in detectors
4.1 OnlineResetDetector
4.2 Threshold, skip period, and run-length controls
4.3 Running one reset detector end to end
Section 5. OnlineDetectionTrace
5.1 Trace anatomy
5.2 Programmatic inspection of stepwise results
5.3 Cutting traces for local analysis
Section 6. Optional Runtime Wrappers
6.1 SkippingOnlineAlgorithmWrapper
Section 7. Final Recap
04. PySATL CPD API: Analysis
Section 1. Orientation
What in this notebook
Section 2. Preparing one common provider and trace
2.1 Building the provider
2.2 Building the trace
Section 3. Manual Visualization
3.1 Manual matplotlib timeseries plot
3.2 Manual plotly timeseries plot
3.3 Manual matplotlib overview of series and detector output
3.4 Manual plotly overview of series and detector output
Section 4. Reusable Visual Components
4.1 VerticalLineVisualComponent and VerticalFillComponent in matplotlib
4.2 VerticalLineVisualComponent and VerticalFillComponent in plotly
4.3 Learning and skip periods as reusable regions
Section 5. Direct Visualizers
5.1 UnivariateTimeseriesVisualizer and OnlineTraceVisualizer in matplotlib
5.2 UnivariateTimeseriesVisualizer and OnlineTraceVisualizer in plotly
5.3 Custom Shewhart state visualizer in matplotlib
5.4 Custom Shewhart state visualizer in plotly
Section 6. Multivariate Time-Series Visualizers
6.1 Preparing multivariate providers
6.2 PlainMultivariateTimeseriesVisualizer in matplotlib
6.3 PlainMultivariateTimeseriesVisualizer in plotly
6.4 RichMultivariateTimeseriesVisualizer in matplotlib without a custom time column
6.5 RichMultivariateTimeseriesVisualizer in plotly without a custom time column
6.6 RichMultivariateTimeseriesVisualizer in matplotlib with a custom time column and twin axis
6.7 RichMultivariateTimeseriesVisualizer in plotly with a custom time column and twin axis
Section 7. OnlineCpdPlotter
7.1 OnlineCpdPlotter in matplotlib
7.2 OnlineCpdPlotter in plotly
7.3 OnlineCpdPlotter with PlainMultivariateTimeseriesVisualizer and automatic vertical layout
7.4 OnlineCpdPlotter with RichMultivariateTimeseriesVisualizer and automatic left-right layout
Section 8. Single-Run and Multiple-Run Metrics
8.1 Single-run metrics
8.2 Multiple-run metrics
Section 9. Final Recap
05. PySATL CPD API: Reset Benchmarking
Section 1. Orientation
What in this notebook
Section 2. Building a Reset Benchmark Campaign
2.1 Choosing the dataset and feature view
2.2 Configuring reset detectors
2.3 Why entries wrap complete detectors
Section 3. Registry and Benchmark Orchestration
3.1 BenchmarkRegistry
3.2 OnlineResetBenchmark
3.3 Why orchestration is separate from metrics
Section 4. Metric Families for Reset Evaluation
4.1 Classification metrics
4.2 Delay metrics
4.3 Average run length
Section 5. Running Metric Scenarios and Building a Benchmark Table
5.1 Running the benchmark for several metric families
5.2 Merging the metric outputs into one table
5.3 Reading the reset table
Section 6. Visualizing Reset Benchmark Results
6.1 Reset benchmark plots in matplotlib
6.2 Reset benchmark plots in plotly
6.3 Interpreting the plotted tradeoffs
Section 7. Explaining a Metric With One Concrete Trace
7.1 Picking the winning threshold
7.2 Retrieving one cached run from the benchmark registry
7.3 Visualizing the winning operating point
Section 8. Final Recap
06. PySATL CPD API: No-Reset Benchmarking
Section 1. Orientation
What in this notebook
Section 2. Building a No-Reset Benchmark Campaign
2.1 Choosing the dataset and feature view
2.2 Creating an OnlineNoResetBenchmarkEntry
2.3 Creating the benchmark orchestrator
2.4 Cropping bisegment windows (
bisegment_cut
)
Section 3. No-Reset Classification Semantics
3.1 Configuring classification on
OnlineNoResetBenchmark
3.2 Point-based, event-based, and mixed policies
3.3 Why the error margin matters more in no-reset mode
Section 4. Global Classification Tables
4.1 get_classification_table(…)
4.2 Reading the global table
4.3 PR-AUC from global classification tables
Section 5. Transition-Specific Analysis
5.1 get_classification_table_by_transition(…)
5.2 Why transition filtering matters
5.3 Optional ARL inside transition tables
Section 6. State-Based ARL Analysis
6.1 get_ARL_table_by_state(…)
6.2 Interpreting ARL by state
6.3 Why ARL-by-state belongs in the no-reset story
Section 7. Bisegment-Level Analysis
7.1 get_bisegments_table(…)
7.2 Why bisegments are central in no-reset mode
7.3 Choosing informative local cases
Section 8. Visualizing No-Reset Benchmark Results
8.1 Global threshold and PR-AUC views in matplotlib
8.2 ARL-by-state views in matplotlib
Section 9. Explaining No-Reset Behavior With One Continuous Trace
9.1 Selecting a cached local transition case
9.2 Inspecting the cached continuous no-reset trace
9.3 Visualizing the continuous trace with one chosen threshold
Section 10. Final Recap
Changelog
Unreleased
Contributing
PySATL CPD
Contributing
View page source
Contributing
See the full contributing guide in our
GitHub repository
.