ins-pricing 0.1.11__py3-none-any.whl → 0.2.0__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.
Files changed (126) hide show
  1. ins_pricing/README.md +9 -6
  2. ins_pricing/__init__.py +3 -11
  3. ins_pricing/cli/BayesOpt_entry.py +24 -0
  4. ins_pricing/{modelling → cli}/BayesOpt_incremental.py +197 -64
  5. ins_pricing/cli/Explain_Run.py +25 -0
  6. ins_pricing/{modelling → cli}/Explain_entry.py +169 -124
  7. ins_pricing/cli/Pricing_Run.py +25 -0
  8. ins_pricing/cli/__init__.py +1 -0
  9. ins_pricing/cli/bayesopt_entry_runner.py +1312 -0
  10. ins_pricing/cli/utils/__init__.py +1 -0
  11. ins_pricing/cli/utils/cli_common.py +320 -0
  12. ins_pricing/cli/utils/cli_config.py +375 -0
  13. ins_pricing/{modelling → cli/utils}/notebook_utils.py +74 -19
  14. {ins_pricing_gemini/modelling → ins_pricing/cli}/watchdog_run.py +2 -2
  15. ins_pricing/{modelling → docs/modelling}/BayesOpt_USAGE.md +69 -49
  16. ins_pricing/docs/modelling/README.md +34 -0
  17. ins_pricing/modelling/__init__.py +57 -6
  18. ins_pricing/modelling/core/__init__.py +1 -0
  19. ins_pricing/modelling/{bayesopt → core/bayesopt}/config_preprocess.py +64 -1
  20. ins_pricing/modelling/{bayesopt → core/bayesopt}/core.py +150 -810
  21. ins_pricing/modelling/core/bayesopt/model_explain_mixin.py +296 -0
  22. ins_pricing/modelling/core/bayesopt/model_plotting_mixin.py +548 -0
  23. ins_pricing/modelling/core/bayesopt/models/__init__.py +27 -0
  24. ins_pricing/modelling/core/bayesopt/models/model_ft_components.py +316 -0
  25. ins_pricing/modelling/core/bayesopt/models/model_ft_trainer.py +808 -0
  26. ins_pricing/modelling/core/bayesopt/models/model_gnn.py +675 -0
  27. ins_pricing/modelling/core/bayesopt/models/model_resn.py +435 -0
  28. ins_pricing/modelling/core/bayesopt/trainers/__init__.py +19 -0
  29. ins_pricing/modelling/core/bayesopt/trainers/trainer_base.py +1020 -0
  30. ins_pricing/modelling/core/bayesopt/trainers/trainer_ft.py +787 -0
  31. ins_pricing/modelling/core/bayesopt/trainers/trainer_glm.py +195 -0
  32. ins_pricing/modelling/core/bayesopt/trainers/trainer_gnn.py +312 -0
  33. ins_pricing/modelling/core/bayesopt/trainers/trainer_resn.py +261 -0
  34. ins_pricing/modelling/core/bayesopt/trainers/trainer_xgb.py +348 -0
  35. ins_pricing/modelling/{bayesopt → core/bayesopt}/utils.py +2 -2
  36. ins_pricing/modelling/core/evaluation.py +115 -0
  37. ins_pricing/production/__init__.py +4 -0
  38. ins_pricing/production/preprocess.py +71 -0
  39. ins_pricing/setup.py +10 -5
  40. {ins_pricing_gemini/modelling/tests → ins_pricing/tests/modelling}/test_plotting.py +2 -2
  41. {ins_pricing-0.1.11.dist-info → ins_pricing-0.2.0.dist-info}/METADATA +4 -4
  42. ins_pricing-0.2.0.dist-info/RECORD +125 -0
  43. {ins_pricing-0.1.11.dist-info → ins_pricing-0.2.0.dist-info}/top_level.txt +0 -1
  44. ins_pricing/modelling/BayesOpt_entry.py +0 -633
  45. ins_pricing/modelling/Explain_Run.py +0 -36
  46. ins_pricing/modelling/Pricing_Run.py +0 -36
  47. ins_pricing/modelling/README.md +0 -33
  48. ins_pricing/modelling/bayesopt/models.py +0 -2196
  49. ins_pricing/modelling/bayesopt/trainers.py +0 -2446
  50. ins_pricing/modelling/cli_common.py +0 -136
  51. ins_pricing/modelling/tests/test_plotting.py +0 -63
  52. ins_pricing/modelling/watchdog_run.py +0 -211
  53. ins_pricing-0.1.11.dist-info/RECORD +0 -169
  54. ins_pricing_gemini/__init__.py +0 -23
  55. ins_pricing_gemini/governance/__init__.py +0 -20
  56. ins_pricing_gemini/governance/approval.py +0 -93
  57. ins_pricing_gemini/governance/audit.py +0 -37
  58. ins_pricing_gemini/governance/registry.py +0 -99
  59. ins_pricing_gemini/governance/release.py +0 -159
  60. ins_pricing_gemini/modelling/Explain_Run.py +0 -36
  61. ins_pricing_gemini/modelling/Pricing_Run.py +0 -36
  62. ins_pricing_gemini/modelling/__init__.py +0 -151
  63. ins_pricing_gemini/modelling/cli_common.py +0 -141
  64. ins_pricing_gemini/modelling/config.py +0 -249
  65. ins_pricing_gemini/modelling/config_preprocess.py +0 -254
  66. ins_pricing_gemini/modelling/core.py +0 -741
  67. ins_pricing_gemini/modelling/data_container.py +0 -42
  68. ins_pricing_gemini/modelling/explain/__init__.py +0 -55
  69. ins_pricing_gemini/modelling/explain/gradients.py +0 -334
  70. ins_pricing_gemini/modelling/explain/metrics.py +0 -176
  71. ins_pricing_gemini/modelling/explain/permutation.py +0 -155
  72. ins_pricing_gemini/modelling/explain/shap_utils.py +0 -146
  73. ins_pricing_gemini/modelling/features.py +0 -215
  74. ins_pricing_gemini/modelling/model_manager.py +0 -148
  75. ins_pricing_gemini/modelling/model_plotting.py +0 -463
  76. ins_pricing_gemini/modelling/models.py +0 -2203
  77. ins_pricing_gemini/modelling/notebook_utils.py +0 -294
  78. ins_pricing_gemini/modelling/plotting/__init__.py +0 -45
  79. ins_pricing_gemini/modelling/plotting/common.py +0 -63
  80. ins_pricing_gemini/modelling/plotting/curves.py +0 -572
  81. ins_pricing_gemini/modelling/plotting/diagnostics.py +0 -139
  82. ins_pricing_gemini/modelling/plotting/geo.py +0 -362
  83. ins_pricing_gemini/modelling/plotting/importance.py +0 -121
  84. ins_pricing_gemini/modelling/run_logging.py +0 -133
  85. ins_pricing_gemini/modelling/tests/conftest.py +0 -8
  86. ins_pricing_gemini/modelling/tests/test_cross_val_generic.py +0 -66
  87. ins_pricing_gemini/modelling/tests/test_distributed_utils.py +0 -18
  88. ins_pricing_gemini/modelling/tests/test_explain.py +0 -56
  89. ins_pricing_gemini/modelling/tests/test_geo_tokens_split.py +0 -49
  90. ins_pricing_gemini/modelling/tests/test_graph_cache.py +0 -33
  91. ins_pricing_gemini/modelling/tests/test_plotting_library.py +0 -150
  92. ins_pricing_gemini/modelling/tests/test_preprocessor.py +0 -48
  93. ins_pricing_gemini/modelling/trainers.py +0 -2447
  94. ins_pricing_gemini/modelling/utils.py +0 -1020
  95. ins_pricing_gemini/pricing/__init__.py +0 -27
  96. ins_pricing_gemini/pricing/calibration.py +0 -39
  97. ins_pricing_gemini/pricing/data_quality.py +0 -117
  98. ins_pricing_gemini/pricing/exposure.py +0 -85
  99. ins_pricing_gemini/pricing/factors.py +0 -91
  100. ins_pricing_gemini/pricing/monitoring.py +0 -99
  101. ins_pricing_gemini/pricing/rate_table.py +0 -78
  102. ins_pricing_gemini/production/__init__.py +0 -21
  103. ins_pricing_gemini/production/drift.py +0 -30
  104. ins_pricing_gemini/production/monitoring.py +0 -143
  105. ins_pricing_gemini/production/scoring.py +0 -40
  106. ins_pricing_gemini/reporting/__init__.py +0 -11
  107. ins_pricing_gemini/reporting/report_builder.py +0 -72
  108. ins_pricing_gemini/reporting/scheduler.py +0 -45
  109. ins_pricing_gemini/scripts/BayesOpt_incremental.py +0 -722
  110. ins_pricing_gemini/scripts/Explain_entry.py +0 -545
  111. ins_pricing_gemini/scripts/__init__.py +0 -1
  112. ins_pricing_gemini/scripts/train.py +0 -568
  113. ins_pricing_gemini/setup.py +0 -55
  114. ins_pricing_gemini/smoke_test.py +0 -28
  115. /ins_pricing/{modelling → cli/utils}/run_logging.py +0 -0
  116. /ins_pricing/modelling/{BayesOpt.py → core/BayesOpt.py} +0 -0
  117. /ins_pricing/modelling/{bayesopt → core/bayesopt}/__init__.py +0 -0
  118. /ins_pricing/{modelling/tests → tests/modelling}/conftest.py +0 -0
  119. /ins_pricing/{modelling/tests → tests/modelling}/test_cross_val_generic.py +0 -0
  120. /ins_pricing/{modelling/tests → tests/modelling}/test_distributed_utils.py +0 -0
  121. /ins_pricing/{modelling/tests → tests/modelling}/test_explain.py +0 -0
  122. /ins_pricing/{modelling/tests → tests/modelling}/test_geo_tokens_split.py +0 -0
  123. /ins_pricing/{modelling/tests → tests/modelling}/test_graph_cache.py +0 -0
  124. /ins_pricing/{modelling/tests → tests/modelling}/test_plotting_library.py +0 -0
  125. /ins_pricing/{modelling/tests → tests/modelling}/test_preprocessor.py +0 -0
  126. {ins_pricing-0.1.11.dist-info → ins_pricing-0.2.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,115 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass
4
+ from typing import Any, Callable, Dict, Optional
5
+
6
+ import numpy as np
7
+
8
+ from ...production.monitoring import (
9
+ classification_metrics,
10
+ regression_metrics,
11
+ )
12
+
13
+
14
+ @dataclass
15
+ class CalibrationResult:
16
+ method: str
17
+ calibrator: Any
18
+
19
+ def predict(self, scores: np.ndarray) -> np.ndarray:
20
+ if self.method == "sigmoid":
21
+ return self.calibrator.predict_proba(scores.reshape(-1, 1))[:, 1]
22
+ return self.calibrator.transform(scores)
23
+
24
+
25
+ def select_threshold(
26
+ y_true: np.ndarray,
27
+ y_pred: np.ndarray,
28
+ *,
29
+ metric: str = "f1",
30
+ min_positive_rate: Optional[float] = None,
31
+ grid: int = 99,
32
+ ) -> Dict[str, float]:
33
+ y_true = np.asarray(y_true, dtype=float).reshape(-1)
34
+ y_pred = np.asarray(y_pred, dtype=float).reshape(-1)
35
+ thresholds = np.linspace(0.01, 0.99, max(2, int(grid)))
36
+ best = {"threshold": 0.5, "score": -1.0}
37
+ for thr in thresholds:
38
+ pred_label = (y_pred >= thr).astype(float)
39
+ pos_rate = float(np.mean(pred_label))
40
+ if min_positive_rate is not None and pos_rate < float(min_positive_rate):
41
+ continue
42
+ metrics = classification_metrics(y_true, y_pred, threshold=float(thr))
43
+ precision = metrics.get("precision", 0.0)
44
+ recall = metrics.get("recall", 0.0)
45
+ f1 = 0.0 if (precision + recall) == 0 else 2 * precision * recall / (precision + recall)
46
+ score = f1 if metric == "f1" else metrics.get(metric, f1)
47
+ if score > best["score"]:
48
+ best = {"threshold": float(thr), "score": float(score)}
49
+ return best
50
+
51
+
52
+ def calibrate_predictions(
53
+ y_true: np.ndarray,
54
+ y_pred: np.ndarray,
55
+ *,
56
+ method: str = "sigmoid",
57
+ ) -> CalibrationResult:
58
+ from sklearn.isotonic import IsotonicRegression
59
+ from sklearn.linear_model import LogisticRegression
60
+
61
+ y_true = np.asarray(y_true, dtype=float).reshape(-1)
62
+ y_pred = np.asarray(y_pred, dtype=float).reshape(-1)
63
+ method = str(method or "sigmoid").strip().lower()
64
+ if method in {"platt", "sigmoid", "logistic"}:
65
+ model = LogisticRegression(max_iter=200)
66
+ model.fit(y_pred.reshape(-1, 1), y_true)
67
+ return CalibrationResult(method="sigmoid", calibrator=model)
68
+ if method in {"isotonic"}:
69
+ model = IsotonicRegression(out_of_bounds="clip")
70
+ model.fit(y_pred, y_true)
71
+ return CalibrationResult(method="isotonic", calibrator=model)
72
+ raise ValueError(f"Unsupported calibration method: {method}")
73
+
74
+
75
+ def bootstrap_ci(
76
+ metric_fn: Callable[[np.ndarray, np.ndarray, Optional[np.ndarray]], float],
77
+ y_true: np.ndarray,
78
+ y_pred: np.ndarray,
79
+ *,
80
+ weight: Optional[np.ndarray] = None,
81
+ n_samples: int = 200,
82
+ ci: float = 0.95,
83
+ seed: Optional[int] = None,
84
+ ) -> Dict[str, float]:
85
+ rng = np.random.default_rng(seed)
86
+ y_true = np.asarray(y_true).reshape(-1)
87
+ y_pred = np.asarray(y_pred).reshape(-1)
88
+ if weight is not None:
89
+ weight = np.asarray(weight).reshape(-1)
90
+ n = len(y_true)
91
+ stats = []
92
+ for _ in range(max(1, int(n_samples))):
93
+ idx = rng.integers(0, n, size=n)
94
+ y_t = y_true[idx]
95
+ y_p = y_pred[idx]
96
+ w_t = weight[idx] if weight is not None else None
97
+ stats.append(float(metric_fn(y_t, y_p, w_t)))
98
+ stats = np.asarray(stats, dtype=float)
99
+ alpha = (1.0 - float(ci)) / 2.0
100
+ low = float(np.quantile(stats, alpha))
101
+ high = float(np.quantile(stats, 1.0 - alpha))
102
+ return {"mean": float(np.mean(stats)), "low": low, "high": high}
103
+
104
+
105
+ def metrics_report(
106
+ y_true: np.ndarray,
107
+ y_pred: np.ndarray,
108
+ *,
109
+ task_type: str,
110
+ weight: Optional[np.ndarray] = None,
111
+ threshold: float = 0.5,
112
+ ) -> Dict[str, float]:
113
+ if str(task_type) == "classification":
114
+ return classification_metrics(y_true, y_pred, threshold=threshold)
115
+ return regression_metrics(y_true, y_pred, weight=weight)
@@ -9,6 +9,7 @@ from .monitoring import (
9
9
  regression_metrics,
10
10
  )
11
11
  from .scoring import batch_score
12
+ from .preprocess import apply_preprocess_artifacts, load_preprocess_artifacts, prepare_raw_features
12
13
 
13
14
  __all__ = [
14
15
  "psi_report",
@@ -18,4 +19,7 @@ __all__ = [
18
19
  "metrics_report",
19
20
  "regression_metrics",
20
21
  "batch_score",
22
+ "apply_preprocess_artifacts",
23
+ "load_preprocess_artifacts",
24
+ "prepare_raw_features",
21
25
  ]
@@ -0,0 +1,71 @@
1
+ from __future__ import annotations
2
+
3
+ import json
4
+ from pathlib import Path
5
+ from typing import Any, Dict
6
+
7
+ import pandas as pd
8
+
9
+
10
+ def load_preprocess_artifacts(path: str | Path) -> Dict[str, Any]:
11
+ artifact_path = Path(path)
12
+ payload = json.loads(artifact_path.read_text(encoding="utf-8", errors="replace"))
13
+ if not isinstance(payload, dict):
14
+ raise ValueError(f"Invalid preprocess artifact: {artifact_path}")
15
+ return payload
16
+
17
+
18
+ def prepare_raw_features(df: pd.DataFrame, artifacts: Dict[str, Any]) -> pd.DataFrame:
19
+ factor_nmes = list(artifacts.get("factor_nmes") or [])
20
+ cate_list = list(artifacts.get("cate_list") or [])
21
+ num_features = set(artifacts.get("num_features") or [])
22
+ cat_categories = artifacts.get("cat_categories") or {}
23
+
24
+ work = df.copy()
25
+ for col in factor_nmes:
26
+ if col not in work.columns:
27
+ work[col] = pd.NA
28
+
29
+ for col in factor_nmes:
30
+ if col in num_features:
31
+ work[col] = pd.to_numeric(work[col], errors="coerce").fillna(0)
32
+ else:
33
+ series = work[col].astype("object").fillna("<NA>")
34
+ cats = cat_categories.get(col)
35
+ if isinstance(cats, list) and cats:
36
+ series = pd.Categorical(series, categories=cats)
37
+ work[col] = series
38
+
39
+ if factor_nmes:
40
+ work = work[factor_nmes]
41
+ return work
42
+
43
+
44
+ def apply_preprocess_artifacts(df: pd.DataFrame, artifacts: Dict[str, Any]) -> pd.DataFrame:
45
+ cate_list = list(artifacts.get("cate_list") or [])
46
+ num_features = list(artifacts.get("num_features") or [])
47
+ var_nmes = list(artifacts.get("var_nmes") or [])
48
+ numeric_scalers = artifacts.get("numeric_scalers") or {}
49
+ drop_first = bool(artifacts.get("drop_first", True))
50
+
51
+ work = prepare_raw_features(df, artifacts)
52
+ oht = pd.get_dummies(
53
+ work,
54
+ columns=cate_list,
55
+ drop_first=drop_first,
56
+ dtype="int8",
57
+ )
58
+
59
+ for col in num_features:
60
+ if col not in oht.columns:
61
+ continue
62
+ stats = numeric_scalers.get(col) or {}
63
+ mean = float(stats.get("mean", 0.0))
64
+ scale = float(stats.get("scale", 1.0))
65
+ if scale == 0.0:
66
+ scale = 1.0
67
+ oht[col] = (oht[col] - mean) / scale
68
+
69
+ if var_nmes:
70
+ oht = oht.reindex(columns=var_nmes, fill_value=0)
71
+ return oht
ins_pricing/setup.py CHANGED
@@ -2,8 +2,14 @@ from setuptools import setup, find_packages
2
2
 
3
3
 
4
4
  def _discover_packages() -> list[str]:
5
- root_packages = ["modelling", "pricing",
6
- "production", "governance", "reporting"]
5
+ root_packages = [
6
+ "cli",
7
+ "modelling",
8
+ "pricing",
9
+ "production",
10
+ "governance",
11
+ "reporting",
12
+ ]
7
13
  packages = ["ins_pricing"]
8
14
  for root in root_packages:
9
15
  found = find_packages(where=".", include=[root, f"{root}.*"])
@@ -14,7 +20,7 @@ def _discover_packages() -> list[str]:
14
20
 
15
21
  setup(
16
22
  name="Ins-Pricing",
17
- version="0.1.11",
23
+ version="0.2.0",
18
24
  description="Reusable modelling, pricing, governance, and reporting utilities.",
19
25
  author="meishi125478",
20
26
  license="Proprietary",
@@ -69,6 +75,5 @@ setup(
69
75
  },
70
76
  include_package_data=True,
71
77
  package_data={"ins_pricing": ["**/*.json", "**/*.md"]},
72
- exclude_package_data={"ins_pricing": [
73
- "modelling/demo/*", "modelling/demo/**/*"]},
78
+ exclude_package_data={"ins_pricing": ["examples/*", "examples/**/*"]},
74
79
  )
@@ -56,8 +56,8 @@ def test_plotting_outputs(tmp_path, monkeypatch):
56
56
  model.plot_lift("Xgboost", "pred_xgb", n_bins=5)
57
57
  model.plot_dlift(["xgb", "resn"], n_bins=5)
58
58
 
59
- lift_path = tmp_path / "plot" / "01_demo_Xgboost_lift.png"
60
- dlift_path = tmp_path / "plot" / "02_demo_dlift_xgb_vs_resn.png"
59
+ lift_path = tmp_path / "plot" / "demo" / "lift" / "01_demo_Xgboost_lift.png"
60
+ dlift_path = tmp_path / "plot" / "demo" / "double_lift" / "02_demo_dlift_xgb_vs_resn.png"
61
61
 
62
62
  assert lift_path.exists()
63
63
  assert dlift_path.exists()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ins_pricing
3
- Version: 0.1.11
3
+ Version: 0.2.0
4
4
  Summary: Reusable modelling, pricing, governance, and reporting utilities.
5
5
  Author: meishi125478
6
6
  License: Proprietary
@@ -64,7 +64,7 @@ This repository contains risk modeling and optimization notebooks, scripts, and
64
64
  - `ins_pricing/`: reusable training framework and CLI tools (BayesOpt subpackage)
65
65
  - `user_packages legacy/`: historical snapshot
66
66
 
67
- Note: `ins_pricing/modelling/demo/` is kept in the repo only and is not shipped in the PyPI package.
67
+ Note: `ins_pricing/modelling/examples/` is kept in the repo only and is not shipped in the PyPI package.
68
68
 
69
69
  ## Quickstart
70
70
 
@@ -84,8 +84,8 @@ jupyter lab
84
84
 
85
85
  ## BayesOpt entry points
86
86
 
87
- - CLI batch training: `python ins_pricing/modelling/BayesOpt_entry.py --config-json <path>`
88
- - Incremental training: `python ins_pricing/modelling/BayesOpt_incremental.py --config-json <path>`
87
+ - CLI batch training: `python ins_pricing/modelling/cli/BayesOpt_entry.py --config-json <path>`
88
+ - Incremental training: `python ins_pricing/modelling/cli/BayesOpt_incremental.py --config-json <path>`
89
89
  - Python API: `from ins_pricing.modelling import BayesOptModel`
90
90
 
91
91
  ## Tests
@@ -0,0 +1,125 @@
1
+ ins_pricing/README.md,sha256=pMOO1cU06oBfvm5d8gvAsQsJr9bfb6AKdpXlrx0AAxw,2727
2
+ ins_pricing/__init__.py,sha256=46j1wCdLVrgrofeBwKl-3NXTxzjbTv-w3KjW-dyKGiY,2622
3
+ ins_pricing/setup.py,sha256=3bVzoJNkDzEfAn_g74gsDfe6c6DceamO9U-EaLiBmyY,2054
4
+ ins_pricing/cli/BayesOpt_entry.py,sha256=X3AiNQQh5ARcjVMM2vOKWPYPDIId40n_RPZA76pTGl4,558
5
+ ins_pricing/cli/BayesOpt_incremental.py,sha256=_Klr5vvNoq_TbgwrH_T3f0a6cHmA9iVJMViiji6ahJY,35927
6
+ ins_pricing/cli/Explain_Run.py,sha256=gEPQjqHiXyXlCTKjUzwSvbAn5_h74ABgb_sEGs-YHVE,664
7
+ ins_pricing/cli/Explain_entry.py,sha256=PP6j4uQspmettCk21lhh9L9jurDwZfWXGxS2EBUZpMs,23191
8
+ ins_pricing/cli/Pricing_Run.py,sha256=qZribQ_ku4NK4oIvlrLJdM-jyyKtIUoCbbvo8Wh_RQ4,711
9
+ ins_pricing/cli/__init__.py,sha256=F296f1J_tBPv33lDJQ6LaN_CPwMJTMtOuTsMof0dr2o,50
10
+ ins_pricing/cli/bayesopt_entry_runner.py,sha256=GIbvR-793BMfDXDQztfHZnHS7r01XZTh76lVtfrB1H4,51586
11
+ ins_pricing/cli/watchdog_run.py,sha256=ehUkN9VqsQkxc6YC_WLanU6Pu-ers-nvPEtCaJ9UsgY,6188
12
+ ins_pricing/cli/utils/__init__.py,sha256=u3kt1B27OiuOEgw6PQN-fNs9vNiAjdPyybsRQsZkM_I,54
13
+ ins_pricing/cli/utils/cli_common.py,sha256=mA5UysII-xTzh-3u5N3CV4M6nF0I6MfKioG4AvLaQO8,10170
14
+ ins_pricing/cli/utils/cli_config.py,sha256=TC8fR1XdQIbaojbeac7dESj7TmCKSfpZTbLvJrkJLEY,13247
15
+ ins_pricing/cli/utils/notebook_utils.py,sha256=qffnR84JVDjcsesWjGwnmJ4gyNhW0WhROnvISnWTT1s,11987
16
+ ins_pricing/cli/utils/run_logging.py,sha256=V3Wh2EV6c1Mo0QTvfe4hl2J4LOR6bdQsT210o__YBWk,3677
17
+ ins_pricing/docs/modelling/BayesOpt_USAGE.md,sha256=kPhaIhRSS4SkbIYjaJ1f3dVfXWqNIWKi0BgUU5QQEqc,40560
18
+ ins_pricing/docs/modelling/README.md,sha256=2a7m1dBnacxBKjEV9k16Qj9IPstlwwuis1QxdsMrFmA,1976
19
+ ins_pricing/governance/README.md,sha256=XnXLS5RPzWhEiicJ3WtGmpN935jppHhPftA9Lo2DPnQ,511
20
+ ins_pricing/governance/__init__.py,sha256=d8tiDhOvHvAvgSohY1xv0vuEeHj8Gl1apQtw7ryEKM0,517
21
+ ins_pricing/governance/approval.py,sha256=cjJQjU1ziR-d-9wVSXyMyX6S5zijJqDWERZNxjqGAUE,2879
22
+ ins_pricing/governance/audit.py,sha256=f0aw-LaOxH5NGzxwczeLrGMJcxO-JDRn99BpI55KRn4,1040
23
+ ins_pricing/governance/registry.py,sha256=2uxQL6qMGY5IYWJti9MpaV_auvL--piJaasFrX20ghk,3139
24
+ ins_pricing/governance/release.py,sha256=ltyFIdeKbwj9fnEDxcQCURaQ5Zc_j0mqXFPNunmX_NQ,4743
25
+ ins_pricing/modelling/__init__.py,sha256=0tiXRE3rAwSxHT0dSaosWf_vGd7FpRA_kHW6dclr4PA,2710
26
+ ins_pricing/modelling/core/BayesOpt.py,sha256=i2tB3c6EeucjKAsHyicGDNU7DVVCTihg-TgSoM1y18E,3332
27
+ ins_pricing/modelling/core/__init__.py,sha256=bF5OWfK_mfg5P2oz2jid3MGi9uA13fpqKK-DbPkuci0,54
28
+ ins_pricing/modelling/core/evaluation.py,sha256=wEMWdzs12vPnDo5t183ORMDA6APuc5g6g9Uyfd6GVi8,3905
29
+ ins_pricing/modelling/core/bayesopt/__init__.py,sha256=5WGZeQI9B1P9OXQUgq7XogcjAbv2oXnp076bW16e_ss,1955
30
+ ins_pricing/modelling/core/bayesopt/config_preprocess.py,sha256=3p2dMSYfTRbm0Qa7PDCVje_cYsfsIDunNEI10kfaPOE,14755
31
+ ins_pricing/modelling/core/bayesopt/core.py,sha256=wzTkenn9XpSIc-hdyRYcgMcXU8dGyUzF0ae9xzunTO0,40894
32
+ ins_pricing/modelling/core/bayesopt/model_explain_mixin.py,sha256=jCk1zPpwgwBBCndaq-A0_cQnc4RHueh2p5cAuE9ArTo,11620
33
+ ins_pricing/modelling/core/bayesopt/model_plotting_mixin.py,sha256=lD0rUvWV4eWatmTzMrmAUm2Flj8uAOa3R9S2JyYV94k,21807
34
+ ins_pricing/modelling/core/bayesopt/utils.py,sha256=GLXDPUndyvqxQRJHpkvc2ZtUlQcewZ2FXO799HDDWPA,41817
35
+ ins_pricing/modelling/core/bayesopt/models/__init__.py,sha256=vFFCkGnO6rm50TbxR6QekKKQjq-NW4UFwog6fng8-p8,700
36
+ ins_pricing/modelling/core/bayesopt/models/model_ft_components.py,sha256=0I0NiDf1D3cOhTRQwatsNTw9Julmxv5v3HZV8fTrvcQ,10989
37
+ ins_pricing/modelling/core/bayesopt/models/model_ft_trainer.py,sha256=VQ3Xe3O5Crqq_5qD2on3lPNxtlBNIAvbNjIcYPikbJo,35835
38
+ ins_pricing/modelling/core/bayesopt/models/model_gnn.py,sha256=l_oIgLeTJndfYR8lpZbqUq0MKH6wReE2z1B8n1E0P8k,28095
39
+ ins_pricing/modelling/core/bayesopt/models/model_resn.py,sha256=iHfL0rmMOM3XfzZF5f03xZ8MLX7aKXcGNPsXqNxXDBI,16959
40
+ ins_pricing/modelling/core/bayesopt/trainers/__init__.py,sha256=ODYKjT-v4IDxu4ohGLCXY8r1-pMME9LAaNx6pmj5_38,481
41
+ ins_pricing/modelling/core/bayesopt/trainers/trainer_base.py,sha256=9oh7xDCXQ3PcHQYnEO0J9pwNV3gqmQtVpv6ugS8JAKU,43676
42
+ ins_pricing/modelling/core/bayesopt/trainers/trainer_ft.py,sha256=jkafhvfEqIV_PYJ90e8kkOXVGvFpCKS0CRSKLvQ_elQ,34730
43
+ ins_pricing/modelling/core/bayesopt/trainers/trainer_glm.py,sha256=wVU6F2Ubyu3IxP6K-epjkUTGOE8gKPCdpVxGW-JP9rM,7806
44
+ ins_pricing/modelling/core/bayesopt/trainers/trainer_gnn.py,sha256=Tq-jBMC3boPS7_O6YIl3NxYW86Cs5aczy80QudjwOh4,12750
45
+ ins_pricing/modelling/core/bayesopt/trainers/trainer_resn.py,sha256=17d3cGZFcSjV7zv2AI213Aq5RIpilIqePN1KHVHhcz4,10860
46
+ ins_pricing/modelling/core/bayesopt/trainers/trainer_xgb.py,sha256=Ha3PtkB7AedlnRwWEfIBTEAPO69LY5lnjUrdGNL-yas,13783
47
+ ins_pricing/modelling/explain/__init__.py,sha256=CPoGzGu8TTO3FOXjxoXC13VkuIDCf3YTH6L3BqJq3Ok,1171
48
+ ins_pricing/modelling/explain/gradients.py,sha256=9TqCws_p49nFxVMcjVxe4KCZ7frezeL0uV_LCdoM5yo,11088
49
+ ins_pricing/modelling/explain/metrics.py,sha256=K_xOY7ZrHWhbJ79RNB7eXN3VXeTe8vq68ZLH2BlZufA,5389
50
+ ins_pricing/modelling/explain/permutation.py,sha256=YErQQtCbYzv3AbaWgOb3vvrUBRgjA-_iTZrJPBFGnxU,5616
51
+ ins_pricing/modelling/explain/shap_utils.py,sha256=IkijzxBeawyDIXiVxUUkvcC0MrHnttSKsMYOjM-wt-k,4353
52
+ ins_pricing/modelling/plotting/__init__.py,sha256=BBQKcE7IYUYObFrjpSnfNS6rmzc80Lae7oEqxKz-vEk,1058
53
+ ins_pricing/modelling/plotting/common.py,sha256=_kFq7JMA0LnKIp4bqAFvr-24VaHjj9pegDMm1qP9_7Y,1439
54
+ ins_pricing/modelling/plotting/curves.py,sha256=hGjpuALDwO0wDyWkIsBHZ4rqDGwPnkNdDZCIdgLW4II,18419
55
+ ins_pricing/modelling/plotting/diagnostics.py,sha256=AlkBtHuezRoDgMeXm56A1bK6Kn0rWOBy4Uts_xOocrs,5164
56
+ ins_pricing/modelling/plotting/geo.py,sha256=sRJTYOcAphNFM-oww4qbw9MoZneBCJtur96sYuqSNkw,11009
57
+ ins_pricing/modelling/plotting/importance.py,sha256=xs3l9uW_rCrakoA__fanIph6DK2jN_DugsKASAzteJU,3666
58
+ ins_pricing/pricing/README.md,sha256=PEcyw5oDkqJHOqnNdzBdbbpZwG4SOlnhMwY-owwQ0GI,1064
59
+ ins_pricing/pricing/__init__.py,sha256=XFplK3zkxPyNQZJd1Gn6_VvpwHLedMqxAd_Vn9tqsTE,881
60
+ ins_pricing/pricing/calibration.py,sha256=9j_kDW5Fxb9weDMaaRJE0QjAhT98lL0Ifhls6VIRnY0,1158
61
+ ins_pricing/pricing/data_quality.py,sha256=8FecBE60cABsTZE7HETuoKCEOXIrirGAFgg5wQCZrmU,4043
62
+ ins_pricing/pricing/exposure.py,sha256=rw8kKZ_1QdeGTCm13ck9NXrRBPt6TunxRw2s_qkHYkg,2575
63
+ ins_pricing/pricing/factors.py,sha256=RqZRXvW70rKkTIOxtK4MGeyDD3PrOFJ19hVc6rLYFzQ,2937
64
+ ins_pricing/pricing/monitoring.py,sha256=sGkPICaBYYwZPKGJtIeg6aURGs0dLhCBNudCTFeh3R4,3271
65
+ ins_pricing/pricing/rate_table.py,sha256=llDW95i7gR6cCtGFwcGqgpgFvOOPCURaJWmuQw1oce8,2473
66
+ ins_pricing/production/__init__.py,sha256=OwYswuTwZIM7st_wWpMUtVv6csKTZnaHbO6ij5KejVs,598
67
+ ins_pricing/production/drift.py,sha256=PwJk6dde9AEn-59PvF62f3_b3fQk4yeG5SQCh8F-c_A,774
68
+ ins_pricing/production/monitoring.py,sha256=A6Hyc5WSKhFkDZOIrqmFteuDee75CdcwdTq644vrk-U,4836
69
+ ins_pricing/production/preprocess.py,sha256=R_QVbzjppF5XJtRJG3v3NWL0PdMS3rDn0-VETzUnkJI,2315
70
+ ins_pricing/production/scoring.py,sha256=yFmMmbYb7w_RC4uZOCMnAjLMRcjXQWIuT1nsfu-bwuc,1379
71
+ ins_pricing/reporting/README.md,sha256=kTVdB6pNewwh1HlCHrI2SzWTgprtQoQprLRQ2qLdgNA,486
72
+ ins_pricing/reporting/__init__.py,sha256=Se5Cdomv9_RwkIDizkw1yx4iCMcjhjTHb4pZK6K895c,242
73
+ ins_pricing/reporting/report_builder.py,sha256=53ZFqGUx2isAoigT5IDwvXkek67zN7-6IgKeGpJhO7c,2241
74
+ ins_pricing/reporting/scheduler.py,sha256=9koG_1cmWvLqrS66uzMJuAlYI2VTkynV19ssB2TtcKU,1336
75
+ ins_pricing/tests/modelling/conftest.py,sha256=0KUXnkTgIGEIsf0J4uzIx5Kq4JkDyFo81Mv0qvIzW9k,180
76
+ ins_pricing/tests/modelling/test_cross_val_generic.py,sha256=iLZOFmdyrycB15lFWoQphkFlEjzZTozQXTLVOHLw2Qg,1721
77
+ ins_pricing/tests/modelling/test_distributed_utils.py,sha256=9cStpDw7jPdQwmm0Po-G2tB04uzSR1CoOUZMLuB61yI,466
78
+ ins_pricing/tests/modelling/test_explain.py,sha256=NZqKYuL-eSf9eC5ttjcMirfOc48ORMXZQm5PjmYk4jY,1445
79
+ ins_pricing/tests/modelling/test_geo_tokens_split.py,sha256=Ti57IynKB0aWOosr0g2RcZlDZyZC012XZ-hm6tWXBJg,1554
80
+ ins_pricing/tests/modelling/test_graph_cache.py,sha256=QEI5cLLtQ9_zwRR50KqUf8qxo9Jcp1WLxIGs4dSoMNk,821
81
+ ins_pricing/tests/modelling/test_plotting.py,sha256=4gJax72l40fQrjyJQLOgUmaT6xn6zXpujEaFNeHVwGw,1911
82
+ ins_pricing/tests/modelling/test_plotting_library.py,sha256=SB5RjKTaPydK848V0xpqEaJtEWhRv6ZfnHmnnzjaPh4,4079
83
+ ins_pricing/tests/modelling/test_preprocessor.py,sha256=FqbKltV803Pd-ZY1xBc4XF1T-INDuUliaVcMIDPmBxI,1438
84
+ user_packages/__init__.py,sha256=2A4JJiIriqlBBQf-ssnV40BMEY_MW07x01v5fVZLEPI,3217
85
+ user_packages legacy/BayesOpt.py,sha256=T8gisEsAWDOB0Pt-fGnH1GsEyGPKBYK2cBjlGbFC6bk,240270
86
+ user_packages legacy/BayesOpt_entry.py,sha256=xOy8mFNk5jIrR_qTKqVV-BEt9zm9UA4lzu52Mm4E7ik,19123
87
+ user_packages legacy/BayesOpt_incremental.py,sha256=Br291-4UrkQ6du2MU8iEguSFJ170cNjT2Gx-gUVCQgk,26699
88
+ user_packages legacy/Pricing_Run.py,sha256=iRJlW0Nr7lq594x_zhzfIK3duFrn92V1Cbug7hyrB2M,1011
89
+ user_packages legacy/__init__.py,sha256=_fuBWcyZWl6fPOClsZH_lvDhFIOWFzvnuA8Drp05txc,370
90
+ user_packages legacy/cli_common.py,sha256=U5vgmoedlZiSMVGt2rDjKEl_ge6hg3EIHwnkHgV0rdk,3963
91
+ user_packages legacy/notebook_utils.py,sha256=Jx9271qsdMUnWi0ep1zM6PqMYVjRiQtnJJo-h-HsoM0,8483
92
+ user_packages legacy/watchdog_run.py,sha256=8uI0tVtU3r1bnFgED5eg-ZOBBYKV9_qCrBWlQRHSuAM,5813
93
+ user_packages legacy/Try/BayesOpt Legacy251213.py,sha256=YAr6bnt58mh5Z6AfXsWjL7fyANmrLbxa6V3dacGQn5o,155961
94
+ user_packages legacy/Try/BayesOpt Legacy251215.py,sha256=R2mjaTONhI23lP2WmKu0axoFSynh0wZMeUoycpuD_Rw,155164
95
+ user_packages legacy/Try/BayesOpt lagecy251201.py,sha256=Gc6guUXudWvT6GxSbLw7P6Xu2vrtzuLTne3YskQ4O5U,145225
96
+ user_packages legacy/Try/BayesOpt lagecy251218.py,sha256=ZY6mShf05q1Ex1lGJZwBfoegFvHrM61ZF8an2j024Kk,165573
97
+ user_packages legacy/Try/BayesOpt legacy.py,sha256=NM9-oGwePnOo7tn9EUZM_Hf_irK9fEe5PEfsGrG3Cw4,132232
98
+ user_packages legacy/Try/BayesOpt.py,sha256=JDJq3KFA_Q7G2qvI4hlXB5wXnXrL6Pr_wb7nLQhiB8c,35210
99
+ user_packages legacy/Try/BayesOptAll.py,sha256=EkAL57wef53DLRCKOpniB4fy4tE-I-sKz9zjt4_X_bU,60324
100
+ user_packages legacy/Try/BayesOptAllPlatform.py,sha256=gMlOCwhWUATyzRcuqHReX9GuF_c-s0UH5Zl3xbHOkG4,37932
101
+ user_packages legacy/Try/BayesOptCPUGPU.py,sha256=xZnVo7l98Z0QC3sxrbw2SYYVXwml9TCz9rmt8a3t1YQ,71388
102
+ user_packages legacy/Try/BayesOptSearch.py,sha256=JwnPBCzLIUFVyJWHisTTfv1VPWXgK0izzyw6jgnREgU,35260
103
+ user_packages legacy/Try/BayesOptSearchOrigin.py,sha256=dgEoAUhEQBaSXcf6MzIwwJ29QatQvyhGY_S3sP0w6Js,35270
104
+ user_packages legacy/Try/BayesOptV1.py,sha256=sBRR9DhKlMB6IGtpVcx_HXpMbaU5BlgdulV8OhI2LaI,72794
105
+ user_packages legacy/Try/BayesOptV10.py,sha256=rqLgRZ9dYuCuCsH4so-cwPFhCFp7iPcjVhX6kST7AG4,119129
106
+ user_packages legacy/Try/BayesOptV11.py,sha256=2Un-ezvXwSgsefB_2-4ZJumazyChJBAff21FJkyqe3w,120405
107
+ user_packages legacy/Try/BayesOptV12.py,sha256=D1k-2R-GTAdHrOpD9t7VrjSKsAKWx4rc_k_mT0a13Ls,120417
108
+ user_packages legacy/Try/BayesOptV2.py,sha256=RkcHVE6whi63tatiV1wRF25LYPiYll9kWUmYACuHqR0,79754
109
+ user_packages legacy/Try/BayesOptV3.py,sha256=1Jdyc_CyUTHKeI_3NE3tCrbWe849eToublYsaqVzXg0,83634
110
+ user_packages legacy/Try/BayesOptV4.py,sha256=mcp4MeouEhc85WouvvljRMH40eetlvPw0TEJQ6IMjwA,89606
111
+ user_packages legacy/Try/BayesOptV5.py,sha256=eU5n6m9-A5Qph86Bv42oy3IcfF6di8EaFoc9fyf5gaY,90449
112
+ user_packages legacy/Try/BayesOptV6.py,sha256=rwvCb_HKoXREj7kcrvS5PRzI2-WyqW2tVDiUw9alIQo,106994
113
+ user_packages legacy/Try/BayesOptV7.py,sha256=EncqnYSmdGjyPKuqzpBprfuliZQBMyCVanSltHm5wqc,110011
114
+ user_packages legacy/Try/BayesOptV8Codex.py,sha256=9q_1hkSQYXlms_wHkdePQ_EJyXTAEIHbmN6AfYK8MBE,106975
115
+ user_packages legacy/Try/BayesOptV8Gemini.py,sha256=zNohNNKGEGTwi5Kw-p4JiY-1cJQKGF9sIv0f_Qu0xd8,105429
116
+ user_packages legacy/Try/BayesOptV9.py,sha256=17iUm9ogxh2vH1rJI5UH2Czkcv1bH-Cd4uJ-devpO1c,117273
117
+ user_packages legacy/Try/BayesOpt_entry legacy.py,sha256=vFd8nY73HAQVGGsfyjemXsv6Vzt3vji1dHBuCSfKbI0,10163
118
+ user_packages legacy/Try/ModelBayesOptSearch.py,sha256=Co--dkbKxqpl-2tP9zEYmcEosYtOrAxarypNi2svVoc,16772
119
+ user_packages legacy/Try/ResNetBayesOptSearch.py,sha256=mp38lBs-TE3lAc8t8o4He5y1iwGIgrlPerurh_xRmqs,10942
120
+ user_packages legacy/Try/XgbBayesOptSearch.py,sha256=pWjlyT5FSK4zNnng0ZrpTIF5o-wBwuavxFA0LE4B4oE,5534
121
+ user_packages legacy/Try/xgbbayesopt.py,sha256=Vow-wrxcwozbTDPKJcl3ZzYgShd-4oks5Kzs74kXUvA,22754
122
+ ins_pricing-0.2.0.dist-info/METADATA,sha256=MoJ90yswRwarm1mYUUp-0u4T7OXF_csr7yi2IczJ5gU,3662
123
+ ins_pricing-0.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
+ ins_pricing-0.2.0.dist-info/top_level.txt,sha256=0YCsk9wIhiYvSJw2owsQhKj7PBX5nvPsqbv-CpXqJPU,47
125
+ ins_pricing-0.2.0.dist-info/RECORD,,
@@ -1,4 +1,3 @@
1
1
  ins_pricing
2
- ins_pricing_gemini
3
2
  user_packages
4
3
  user_packages legacy