2424# 1. Dataset generation
2525# ---------------------------------------------------------------------------
2626
27+
2728def generate_dataset (
2829 n : int ,
2930 series_length : int = 200 ,
@@ -47,11 +48,13 @@ def generate_dataset(
4748
4849 df = pd .DataFrame ({"value" : data , "segment" : segments })
4950
50- seg_info = pd .DataFrame ({
51- "segment" : [0 , 1 ],
52- "start" : [0 , change_point ],
53- "end" : [change_point - 1 , series_length - 1 ],
54- })
51+ seg_info = pd .DataFrame (
52+ {
53+ "segment" : [0 , 1 ],
54+ "start" : [0 , change_point ],
55+ "end" : [change_point - 1 , series_length - 1 ],
56+ }
57+ )
5558
5659 provider = PandasLabeledDataProvider (
5760 dataset = df ,
@@ -79,11 +82,13 @@ def generate_arl_dataset(
7982 data = rng .normal (mu , sigma , size = series_length )
8083
8184 df = pd .DataFrame ({"value" : data , "segment" : 0 })
82- seg_info = pd .DataFrame ({
83- "segment" : [0 ],
84- "start" : [0 ],
85- "end" : [series_length - 1 ],
86- })
85+ seg_info = pd .DataFrame (
86+ {
87+ "segment" : [0 ],
88+ "start" : [0 ],
89+ "end" : [series_length - 1 ],
90+ }
91+ )
8792
8893 provider = PandasLabeledDataProvider (
8994 dataset = df ,
@@ -100,6 +105,7 @@ def generate_arl_dataset(
100105# 2. Main benchmark
101106# ---------------------------------------------------------------------------
102107
108+
103109def main () -> None :
104110 # --- Parameters ---
105111 N_SERIES = 25
@@ -118,16 +124,26 @@ def main() -> None:
118124
119125 # --- Generate datasets ---
120126 providers = generate_dataset (
121- n = N_SERIES , series_length = SERIES_LENGTH , change_point = CHANGE_POINT ,
122- mu_before = MU_BEFORE , mu_after = MU_AFTER , sigma = SIGMA , seed = 42 ,
127+ n = N_SERIES ,
128+ series_length = SERIES_LENGTH ,
129+ change_point = CHANGE_POINT ,
130+ mu_before = MU_BEFORE ,
131+ mu_after = MU_AFTER ,
132+ sigma = SIGMA ,
133+ seed = 42 ,
123134 )
124135 arl_providers = generate_arl_dataset (
125- n = N_SERIES , series_length = SERIES_LENGTH ,
126- mu = MU_BEFORE , sigma = SIGMA , seed = 42 ,
136+ n = N_SERIES ,
137+ series_length = SERIES_LENGTH ,
138+ mu = MU_BEFORE ,
139+ sigma = SIGMA ,
140+ seed = 42 ,
127141 )
128142
129143 print (f"Algorithm: ShewhartControlChart(learning_period={ LEARNING_PERIOD } , window={ WINDOW_SIZE } )" )
130- print (f"Dataset (NoReset): { N_SERIES } series, length={ SERIES_LENGTH } , cp={ CHANGE_POINT } , shift={ MU_AFTER - MU_BEFORE :.1f} σ" )
144+ print (
145+ f"Dataset (NoReset): { N_SERIES } series, length={ SERIES_LENGTH } , cp={ CHANGE_POINT } , shift={ MU_AFTER - MU_BEFORE :.1f} σ"
146+ )
131147 print (f"Dataset (ARL): { N_SERIES } series, length={ SERIES_LENGTH } , no change points" )
132148 print (f"Error margin: { ERROR_MARGIN } " )
133149 print ("-" * 115 )
@@ -139,9 +155,7 @@ def main() -> None:
139155 solver = OnlineCpdSolver ()
140156
141157 entry = OnlineBenchmarkEntry (
142- algorithm = algorithm ,
143- thresholds = LinspaceThresholds (start = 0 , stop = 7 , num = 30 ),
144- entry_name = "Shewhart"
158+ algorithm = algorithm , thresholds = LinspaceThresholds (start = 0 , stop = 7 , num = 30 ), entry_name = "Shewhart"
145159 )
146160
147161 # ==========================================
@@ -172,7 +186,7 @@ def main() -> None:
172186 # ==========================================
173187 runner_arl = NoResetBenchmark (
174188 solver = solver ,
175- policy = PointBasedPolicy (strict = True ), # Быстрая поточечная экстракция
189+ policy = PointBasedPolicy (strict = True ), # Быстрая поточечная экстракция
176190 metrics = {"arl" : ARLMetric ()},
177191 dump_dir = "benchmark_cache/arl" ,
178192 verbose = True ,
0 commit comments