workbench 0.8.212__py3-none-any.whl → 0.8.213__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -476,8 +476,8 @@ class EndpointCore(Artifact):
476
476
  id_column,
477
477
  )
478
478
 
479
- # For UQ Models we also capture the uncertainty metrics
480
- if model.model_type == ModelType.UQ_REGRESSOR:
479
+ # Capture uncertainty metrics if prediction_std is available (UQ, ChemProp, etc.)
480
+ if "prediction_std" in prediction_df.columns:
481
481
  metrics = uq_metrics(prediction_df, primary_target)
482
482
  self.param_store.upsert(f"/workbench/models/{model.name}/inference/{capture_name}", metrics)
483
483
 
@@ -525,22 +525,20 @@ class EndpointCore(Artifact):
525
525
  fs = FeatureSetCore(model.get_input())
526
526
  id_column = fs.id_column
527
527
 
528
- # For UQ models, get UQ columns from training CV results and compute metrics
529
- # Note: XGBoost training now saves all UQ columns (q_*, confidence, prediction_std)
530
- additional_columns = []
531
- if model_type == ModelType.UQ_REGRESSOR:
532
- uq_columns = [col for col in out_of_fold_df.columns if col.startswith("q_") or col == "confidence"]
533
- if uq_columns:
534
- additional_columns = uq_columns
535
- self.log.info(f"UQ columns from training: {', '.join(uq_columns)}")
536
- primary_target = targets[0] if isinstance(targets, list) else targets
537
- metrics = uq_metrics(out_of_fold_df, primary_target)
538
- self.param_store.upsert(f"/workbench/models/{model.name}/inference/full_cross_fold", metrics)
539
-
540
528
  # Normalize targets to a list for iteration
541
529
  target_list = targets if isinstance(targets, list) else [targets]
542
530
  primary_target = target_list[0]
543
531
 
532
+ # Collect UQ columns (q_*, confidence) for additional tracking
533
+ additional_columns = [col for col in out_of_fold_df.columns if col.startswith("q_") or col == "confidence"]
534
+ if additional_columns:
535
+ self.log.info(f"UQ columns from training: {', '.join(additional_columns)}")
536
+
537
+ # Capture uncertainty metrics if prediction_std is available (UQ, ChemProp, etc.)
538
+ if "prediction_std" in out_of_fold_df.columns:
539
+ metrics = uq_metrics(out_of_fold_df, primary_target)
540
+ self.param_store.upsert(f"/workbench/models/{model.name}/inference/full_cross_fold", metrics)
541
+
544
542
  # For single-target models (99% of cases), just save as "full_cross_fold"
545
543
  # For multi-target models, save each as cv_{target} plus primary as "full_cross_fold"
546
544
  is_multi_target = len(target_list) > 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: workbench
3
- Version: 0.8.212
3
+ Version: 0.8.213
4
4
  Summary: Workbench: A Dashboard and Python API for creating and deploying AWS SageMaker Model Pipelines
5
5
  Author-email: SuperCowPowers LLC <support@supercowpowers.com>
6
6
  License: MIT License
@@ -56,7 +56,7 @@ workbench/core/artifacts/data_capture_core.py,sha256=q8f79rRTYiZ7T4IQRWXl8ZvPpcv
56
56
  workbench/core/artifacts/data_source_abstract.py,sha256=5IRCzFVK-17cd4NXPMRfx99vQAmQ0WHE5jcm5RfsVTg,10619
57
57
  workbench/core/artifacts/data_source_factory.py,sha256=YL_tA5fsgubbB3dPF6T4tO0rGgz-6oo3ge4i_YXVC-M,2380
58
58
  workbench/core/artifacts/df_store_core.py,sha256=AueNr_JvuLLu_ByE7cb3u-isH9u0Q7cMP-UCgCX-Ctg,3536
59
- workbench/core/artifacts/endpoint_core.py,sha256=VkVVnMn6_bVtBLWNEI2hrfW-D4erxZu_sAOQiWqyJkw,56933
59
+ workbench/core/artifacts/endpoint_core.py,sha256=qEjdbzUMeiZZHyJoGQbjCuFKjCVa89fFISnD5hfC7Yw,56787
60
60
  workbench/core/artifacts/feature_set_core.py,sha256=wZy-02WXWmSBet5t8mWXFRdv9O4MtW3hWqJuVv7Kok0,39330
61
61
  workbench/core/artifacts/model_core.py,sha256=LDH6wgN1521q7klkVF17t7tmueKH095B42_PlSAileo,52251
62
62
  workbench/core/artifacts/monitor_core.py,sha256=M307yz7tEzOEHgv-LmtVy9jKjSbM98fHW3ckmNYrwlU,27897
@@ -302,9 +302,9 @@ workbench/web_interface/page_views/main_page.py,sha256=X4-KyGTKLAdxR-Zk2niuLJB2Y
302
302
  workbench/web_interface/page_views/models_page_view.py,sha256=M0bdC7bAzLyIaE2jviY12FF4abdMFZmg6sFuOY_LaGI,2650
303
303
  workbench/web_interface/page_views/page_view.py,sha256=Gh6YnpOGlUejx-bHZAf5pzqoQ1H1R0OSwOpGhOBO06w,455
304
304
  workbench/web_interface/page_views/pipelines_page_view.py,sha256=v2pxrIbsHBcYiblfius3JK766NZ7ciD2yPx0t3E5IJo,2656
305
- workbench-0.8.212.dist-info/licenses/LICENSE,sha256=RTBoTMeEwTgEhS-n8vgQ-VUo5qig0PWVd8xFPKU6Lck,1080
306
- workbench-0.8.212.dist-info/METADATA,sha256=JaR0G2USi-9YIvcIHrSvVzhCjNDRrHO7In9UzPQNDLA,10492
307
- workbench-0.8.212.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
308
- workbench-0.8.212.dist-info/entry_points.txt,sha256=viJ6aXRj63sBIs7avj4kFbCO2J2E7jTCrIk8U1SIc3I,511
309
- workbench-0.8.212.dist-info/top_level.txt,sha256=Dhy72zTxaA_o_yRkPZx5zw-fwumnjGaeGf0hBN3jc_w,10
310
- workbench-0.8.212.dist-info/RECORD,,
305
+ workbench-0.8.213.dist-info/licenses/LICENSE,sha256=RTBoTMeEwTgEhS-n8vgQ-VUo5qig0PWVd8xFPKU6Lck,1080
306
+ workbench-0.8.213.dist-info/METADATA,sha256=hKbYNrdgKqm0wqivCTflFzZu0ekaU64UdTw5BBamkJc,10492
307
+ workbench-0.8.213.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
308
+ workbench-0.8.213.dist-info/entry_points.txt,sha256=viJ6aXRj63sBIs7avj4kFbCO2J2E7jTCrIk8U1SIc3I,511
309
+ workbench-0.8.213.dist-info/top_level.txt,sha256=Dhy72zTxaA_o_yRkPZx5zw-fwumnjGaeGf0hBN3jc_w,10
310
+ workbench-0.8.213.dist-info/RECORD,,