ins-pricing 0.4.4__tar.gz → 0.4.5__tar.gz

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 (146) hide show
  1. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/MANIFEST.in +3 -3
  2. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/PKG-INFO +182 -162
  3. ins_pricing-0.4.5/README.md +130 -0
  4. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/README.md +66 -74
  5. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/BayesOpt_incremental.py +904 -904
  6. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/bayesopt_entry_runner.py +1442 -1442
  7. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/frontend/README.md +573 -419
  8. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/frontend/config_builder.py +1 -0
  9. ins_pricing-0.4.5/ins_pricing/modelling/README.md +67 -0
  10. ins_pricing-0.4.5/ins_pricing/modelling/core/bayesopt/README.md +59 -0
  11. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/config_preprocess.py +12 -0
  12. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/core.py +3 -1
  13. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/setup.py +1 -1
  14. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing.egg-info/PKG-INFO +182 -162
  15. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing.egg-info/SOURCES.txt +2 -9
  16. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/pyproject.toml +1 -1
  17. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/setup.cfg +4 -4
  18. ins_pricing-0.4.4/README.md +0 -110
  19. ins_pricing-0.4.4/ins_pricing/CHANGELOG.md +0 -272
  20. ins_pricing-0.4.4/ins_pricing/RELEASE_NOTES_0.2.8.md +0 -344
  21. ins_pricing-0.4.4/ins_pricing/docs/LOSS_FUNCTIONS.md +0 -78
  22. ins_pricing-0.4.4/ins_pricing/docs/modelling/BayesOpt_USAGE.md +0 -945
  23. ins_pricing-0.4.4/ins_pricing/docs/modelling/README.md +0 -34
  24. ins_pricing-0.4.4/ins_pricing/frontend/QUICKSTART.md +0 -152
  25. ins_pricing-0.4.4/ins_pricing/modelling/core/bayesopt/PHASE2_REFACTORING_SUMMARY.md +0 -449
  26. ins_pricing-0.4.4/ins_pricing/modelling/core/bayesopt/PHASE3_REFACTORING_SUMMARY.md +0 -406
  27. ins_pricing-0.4.4/ins_pricing/modelling/core/bayesopt/REFACTORING_SUMMARY.md +0 -247
  28. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/__init__.py +0 -0
  29. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/BayesOpt_entry.py +0 -0
  30. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/Explain_Run.py +0 -0
  31. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/Explain_entry.py +0 -0
  32. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/Pricing_Run.py +0 -0
  33. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/__init__.py +0 -0
  34. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/utils/__init__.py +0 -0
  35. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/utils/cli_common.py +0 -0
  36. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/utils/cli_config.py +0 -0
  37. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/utils/evaluation_context.py +0 -0
  38. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/utils/import_resolver.py +0 -0
  39. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/utils/notebook_utils.py +0 -0
  40. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/utils/run_logging.py +0 -0
  41. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/cli/watchdog_run.py +0 -0
  42. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/exceptions.py +0 -0
  43. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/frontend/__init__.py +0 -0
  44. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/frontend/app.py +0 -0
  45. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/frontend/example_config.json +0 -0
  46. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/frontend/example_workflows.py +0 -0
  47. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/frontend/ft_workflow.py +0 -0
  48. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/frontend/runner.py +0 -0
  49. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/governance/README.md +0 -0
  50. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/governance/__init__.py +0 -0
  51. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/governance/approval.py +0 -0
  52. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/governance/audit.py +0 -0
  53. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/governance/registry.py +0 -0
  54. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/governance/release.py +0 -0
  55. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/__init__.py +0 -0
  56. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/BayesOpt.py +0 -0
  57. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/__init__.py +0 -0
  58. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/__init__.py +0 -0
  59. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/config_components.py +0 -0
  60. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/model_explain_mixin.py +0 -0
  61. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/model_plotting_mixin.py +0 -0
  62. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/models/__init__.py +0 -0
  63. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/models/model_ft_components.py +0 -0
  64. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/models/model_ft_trainer.py +0 -0
  65. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/models/model_gnn.py +0 -0
  66. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/models/model_resn.py +0 -0
  67. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/trainers/__init__.py +0 -0
  68. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/trainers/trainer_base.py +0 -0
  69. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/trainers/trainer_ft.py +0 -0
  70. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/trainers/trainer_glm.py +0 -0
  71. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/trainers/trainer_gnn.py +0 -0
  72. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/trainers/trainer_resn.py +0 -0
  73. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/trainers/trainer_xgb.py +0 -0
  74. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/utils/__init__.py +0 -0
  75. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/utils/constants.py +0 -0
  76. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/utils/distributed_utils.py +0 -0
  77. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/utils/io_utils.py +0 -0
  78. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/utils/losses.py +0 -0
  79. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/utils/metrics_and_devices.py +0 -0
  80. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/utils/torch_trainer_mixin.py +0 -0
  81. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/utils.py +0 -0
  82. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/bayesopt/utils_backup.py +0 -0
  83. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/core/evaluation.py +0 -0
  84. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/explain/__init__.py +0 -0
  85. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/explain/gradients.py +0 -0
  86. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/explain/metrics.py +0 -0
  87. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/explain/permutation.py +0 -0
  88. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/explain/shap_utils.py +0 -0
  89. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/plotting/__init__.py +0 -0
  90. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/plotting/common.py +0 -0
  91. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/plotting/curves.py +0 -0
  92. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/plotting/diagnostics.py +0 -0
  93. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/plotting/geo.py +0 -0
  94. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/modelling/plotting/importance.py +0 -0
  95. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/pricing/README.md +0 -0
  96. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/pricing/__init__.py +0 -0
  97. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/pricing/calibration.py +0 -0
  98. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/pricing/data_quality.py +0 -0
  99. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/pricing/exposure.py +0 -0
  100. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/pricing/factors.py +0 -0
  101. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/pricing/monitoring.py +0 -0
  102. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/pricing/rate_table.py +0 -0
  103. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/production/__init__.py +0 -0
  104. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/production/drift.py +0 -0
  105. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/production/monitoring.py +0 -0
  106. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/production/predict.py +0 -0
  107. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/production/preprocess.py +0 -0
  108. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/production/scoring.py +0 -0
  109. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/reporting/README.md +0 -0
  110. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/reporting/__init__.py +0 -0
  111. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/reporting/report_builder.py +0 -0
  112. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/reporting/scheduler.py +0 -0
  113. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/governance/__init__.py +0 -0
  114. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/governance/test_audit.py +0 -0
  115. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/governance/test_registry.py +0 -0
  116. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/governance/test_release.py +0 -0
  117. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/modelling/conftest.py +0 -0
  118. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/modelling/test_cross_val_generic.py +0 -0
  119. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/modelling/test_distributed_utils.py +0 -0
  120. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/modelling/test_explain.py +0 -0
  121. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/modelling/test_geo_tokens_split.py +0 -0
  122. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/modelling/test_graph_cache.py +0 -0
  123. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/modelling/test_plotting.py +0 -0
  124. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/modelling/test_plotting_library.py +0 -0
  125. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/modelling/test_preprocessor.py +0 -0
  126. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/pricing/__init__.py +0 -0
  127. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/pricing/test_calibration.py +0 -0
  128. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/pricing/test_exposure.py +0 -0
  129. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/pricing/test_factors.py +0 -0
  130. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/pricing/test_rate_table.py +0 -0
  131. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/production/__init__.py +0 -0
  132. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/production/test_monitoring.py +0 -0
  133. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/production/test_predict.py +0 -0
  134. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/production/test_preprocess.py +0 -0
  135. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/tests/production/test_scoring.py +0 -0
  136. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/utils/__init__.py +0 -0
  137. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/utils/device.py +0 -0
  138. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/utils/logging.py +0 -0
  139. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/utils/metrics.py +0 -0
  140. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/utils/paths.py +0 -0
  141. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/utils/profiling.py +0 -0
  142. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/utils/torch_compat.py +0 -0
  143. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing/utils/validation.py +0 -0
  144. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing.egg-info/dependency_links.txt +0 -0
  145. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing.egg-info/requires.txt +0 -0
  146. {ins_pricing-0.4.4 → ins_pricing-0.4.5}/ins_pricing.egg-info/top_level.txt +0 -0
@@ -1,3 +1,3 @@
1
- include README.md
2
- recursive-include ins_pricing *.md
3
- recursive-exclude ins_pricing/examples *
1
+ include README.md
2
+ recursive-include ins_pricing *.md
3
+ recursive-exclude examples *
@@ -1,162 +1,182 @@
1
- Metadata-Version: 2.4
2
- Name: ins_pricing
3
- Version: 0.4.4
4
- Summary: Reusable modelling, pricing, governance, and reporting utilities.
5
- Author: meishi125478
6
- License: Proprietary
7
- Keywords: pricing,insurance,bayesopt,ml
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: Programming Language :: Python :: 3 :: Only
10
- Classifier: Programming Language :: Python :: 3.9
11
- Classifier: License :: Other/Proprietary License
12
- Classifier: Operating System :: OS Independent
13
- Classifier: Intended Audience :: Developers
14
- Requires-Python: >=3.9
15
- Description-Content-Type: text/markdown
16
- Requires-Dist: numpy>=1.20
17
- Requires-Dist: pandas>=1.4
18
- Provides-Extra: bayesopt
19
- Requires-Dist: torch>=1.13; extra == "bayesopt"
20
- Requires-Dist: optuna>=3.0; extra == "bayesopt"
21
- Requires-Dist: xgboost>=1.6; extra == "bayesopt"
22
- Requires-Dist: scikit-learn>=1.1; extra == "bayesopt"
23
- Requires-Dist: statsmodels>=0.13; extra == "bayesopt"
24
- Requires-Dist: joblib>=1.2; extra == "bayesopt"
25
- Requires-Dist: matplotlib>=3.5; extra == "bayesopt"
26
- Provides-Extra: plotting
27
- Requires-Dist: matplotlib>=3.5; extra == "plotting"
28
- Requires-Dist: scikit-learn>=1.1; extra == "plotting"
29
- Provides-Extra: explain
30
- Requires-Dist: torch>=1.13; extra == "explain"
31
- Requires-Dist: shap>=0.41; extra == "explain"
32
- Requires-Dist: scikit-learn>=1.1; extra == "explain"
33
- Provides-Extra: geo
34
- Requires-Dist: contextily>=1.3; extra == "geo"
35
- Requires-Dist: matplotlib>=3.5; extra == "geo"
36
- Provides-Extra: gnn
37
- Requires-Dist: torch>=1.13; extra == "gnn"
38
- Requires-Dist: pynndescent>=0.5; extra == "gnn"
39
- Requires-Dist: torch-geometric>=2.3; extra == "gnn"
40
- Provides-Extra: all
41
- Requires-Dist: torch>=1.13; extra == "all"
42
- Requires-Dist: optuna>=3.0; extra == "all"
43
- Requires-Dist: xgboost>=1.6; extra == "all"
44
- Requires-Dist: scikit-learn>=1.1; extra == "all"
45
- Requires-Dist: statsmodels>=0.13; extra == "all"
46
- Requires-Dist: joblib>=1.2; extra == "all"
47
- Requires-Dist: matplotlib>=3.5; extra == "all"
48
- Requires-Dist: shap>=0.41; extra == "all"
49
- Requires-Dist: contextily>=1.3; extra == "all"
50
- Requires-Dist: pynndescent>=0.5; extra == "all"
51
- Requires-Dist: torch-geometric>=2.3; extra == "all"
52
-
53
- # Insurance-Pricing
54
-
55
- A reusable toolkit for insurance modeling, pricing, governance, and reporting.
56
-
57
- ## Overview
58
-
59
- Insurance-Pricing (ins_pricing) is an enterprise-grade Python library designed for machine learning model training, pricing calculations, and model governance workflows in the insurance industry.
60
-
61
- ### Core Modules
62
-
63
- | Module | Description |
64
- |--------|-------------|
65
- | **modelling** | ML model training (GLM, XGBoost, ResNet, FT-Transformer, GNN) and model interpretability (SHAP, permutation importance) |
66
- | **pricing** | Factor table construction, numeric binning, premium calibration, exposure calculation, PSI monitoring |
67
- | **production** | Model prediction, batch scoring, data drift detection, production metrics monitoring |
68
- | **governance** | Model registry, version management, approval workflows, audit logging |
69
- | **reporting** | Report generation (Markdown format), report scheduling |
70
- | **utils** | Data validation, performance profiling, device management, logging configuration |
71
-
72
- ### Quick Start
73
-
74
- ```python
75
- # Model training with Bayesian optimization
76
- from ins_pricing import bayesopt as ropt
77
-
78
- model = ropt.BayesOptModel(
79
- train_data, test_data,
80
- model_name='my_model',
81
- resp_nme='target',
82
- weight_nme='weight',
83
- factor_nmes=feature_list,
84
- cate_list=categorical_features,
85
- )
86
- model.bayesopt_xgb(max_evals=100) # Train XGBoost
87
- model.bayesopt_resnet(max_evals=50) # Train ResNet
88
- model.bayesopt_ft(max_evals=50) # Train FT-Transformer
89
-
90
- # Pricing: build factor table
91
- from ins_pricing.pricing import build_factor_table
92
- factors = build_factor_table(
93
- df,
94
- factor_col='age_band',
95
- loss_col='claim_amount',
96
- exposure_col='exposure',
97
- )
98
-
99
- # Production: batch scoring
100
- from ins_pricing.production import batch_score
101
- scores = batch_score(model.trainers['xgb'].predict, df)
102
-
103
- # Model governance
104
- from ins_pricing.governance import ModelRegistry
105
- registry = ModelRegistry('models.json')
106
- registry.register(model_name, version, metrics=metrics)
107
- ```
108
-
109
- ### Project Structure
110
-
111
- ```
112
- ins_pricing/
113
- ├── cli/ # Command-line entry points
114
- ├── modelling/
115
- │ ├── core/bayesopt/ # ML model training core
116
- │ ├── explain/ # Model interpretability
117
- │ └── plotting/ # Model visualization
118
- ├── pricing/ # Insurance pricing module
119
- ├── production/ # Production deployment module
120
- ├── governance/ # Model governance
121
- ├── reporting/ # Report generation
122
- ├── utils/ # Utilities
123
- └── tests/ # Test suite
124
- ```
125
-
126
- ### Installation
127
-
128
- ```bash
129
- # Basic installation
130
- pip install ins_pricing
131
-
132
- # Full installation (all optional dependencies)
133
- pip install ins_pricing[all]
134
-
135
- # Install specific extras
136
- pip install ins_pricing[bayesopt] # Model training
137
- pip install ins_pricing[explain] # Model explanation
138
- pip install ins_pricing[plotting] # Visualization
139
- pip install ins_pricing[gnn] # Graph neural networks
140
- ```
141
-
142
- #### Multi-platform & GPU installation notes
143
-
144
- - **PyTorch (CPU/GPU/MPS)**: Install the correct PyTorch build for your platform/GPU first (CUDA on
145
- Linux/Windows, ROCm on supported AMD platforms, or MPS on Apple Silicon). Then install the
146
- optional extras you need (e.g., `bayesopt`, `explain`, or `gnn`). This avoids pip pulling a
147
- mismatched wheel.
148
- - **Torch Geometric (GNN)**: `torch-geometric` often requires platform-specific wheels (e.g.,
149
- `torch-scatter`, `torch-sparse`). Follow the official PyG installation instructions for your
150
- CUDA/ROCm/CPU environment, then install `ins_pricing[gnn]`.
151
- - **Multi-GPU**: Training code will use CUDA when available and can enable multi-GPU via
152
- `torch.distributed`/`DataParallel` where supported. On Windows, CUDA DDP is not supported and will
153
- fall back to single-GPU or DataParallel where possible.
154
-
155
- ### Requirements
156
-
157
- - Python >= 3.9
158
- - Core dependencies: numpy >= 1.20, pandas >= 1.4
159
-
160
- ### License
161
-
162
- Proprietary
1
+ Metadata-Version: 2.4
2
+ Name: ins_pricing
3
+ Version: 0.4.5
4
+ Summary: Reusable modelling, pricing, governance, and reporting utilities.
5
+ Author: meishi125478
6
+ License: Proprietary
7
+ Keywords: pricing,insurance,bayesopt,ml
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3 :: Only
10
+ Classifier: Programming Language :: Python :: 3.9
11
+ Classifier: License :: Other/Proprietary License
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Intended Audience :: Developers
14
+ Requires-Python: >=3.9
15
+ Description-Content-Type: text/markdown
16
+ Requires-Dist: numpy>=1.20
17
+ Requires-Dist: pandas>=1.4
18
+ Provides-Extra: bayesopt
19
+ Requires-Dist: torch>=1.13; extra == "bayesopt"
20
+ Requires-Dist: optuna>=3.0; extra == "bayesopt"
21
+ Requires-Dist: xgboost>=1.6; extra == "bayesopt"
22
+ Requires-Dist: scikit-learn>=1.1; extra == "bayesopt"
23
+ Requires-Dist: statsmodels>=0.13; extra == "bayesopt"
24
+ Requires-Dist: joblib>=1.2; extra == "bayesopt"
25
+ Requires-Dist: matplotlib>=3.5; extra == "bayesopt"
26
+ Provides-Extra: plotting
27
+ Requires-Dist: matplotlib>=3.5; extra == "plotting"
28
+ Requires-Dist: scikit-learn>=1.1; extra == "plotting"
29
+ Provides-Extra: explain
30
+ Requires-Dist: torch>=1.13; extra == "explain"
31
+ Requires-Dist: shap>=0.41; extra == "explain"
32
+ Requires-Dist: scikit-learn>=1.1; extra == "explain"
33
+ Provides-Extra: geo
34
+ Requires-Dist: contextily>=1.3; extra == "geo"
35
+ Requires-Dist: matplotlib>=3.5; extra == "geo"
36
+ Provides-Extra: gnn
37
+ Requires-Dist: torch>=1.13; extra == "gnn"
38
+ Requires-Dist: pynndescent>=0.5; extra == "gnn"
39
+ Requires-Dist: torch-geometric>=2.3; extra == "gnn"
40
+ Provides-Extra: all
41
+ Requires-Dist: torch>=1.13; extra == "all"
42
+ Requires-Dist: optuna>=3.0; extra == "all"
43
+ Requires-Dist: xgboost>=1.6; extra == "all"
44
+ Requires-Dist: scikit-learn>=1.1; extra == "all"
45
+ Requires-Dist: statsmodels>=0.13; extra == "all"
46
+ Requires-Dist: joblib>=1.2; extra == "all"
47
+ Requires-Dist: matplotlib>=3.5; extra == "all"
48
+ Requires-Dist: shap>=0.41; extra == "all"
49
+ Requires-Dist: contextily>=1.3; extra == "all"
50
+ Requires-Dist: pynndescent>=0.5; extra == "all"
51
+ Requires-Dist: torch-geometric>=2.3; extra == "all"
52
+
53
+ # Insurance-Pricing
54
+
55
+ A reusable toolkit for insurance modeling, pricing, governance, and reporting.
56
+
57
+ ## Overview
58
+
59
+ Insurance-Pricing (ins_pricing) is an enterprise-grade Python library designed for machine learning
60
+ model training, pricing calculations, and model governance workflows in the insurance industry.
61
+
62
+ ### Core Modules
63
+
64
+ | Module | Description |
65
+ |--------|-------------|
66
+ | modelling | ML model training (GLM, XGBoost, ResNet, FT-Transformer, GNN) and model interpretability |
67
+ | pricing | Factor table construction, numeric binning, premium calibration, exposure calculation, PSI monitoring |
68
+ | production | Model prediction, batch scoring, data drift detection, production metrics monitoring |
69
+ | governance | Model registry, version management, approval workflows, audit logging |
70
+ | reporting | Report generation (Markdown format), report scheduling |
71
+ | utils | Data validation, performance profiling, device management, logging configuration |
72
+
73
+ ### Quick Start
74
+
75
+ ```python
76
+ # Model training with Bayesian optimization
77
+ from ins_pricing import bayesopt as ropt
78
+
79
+ model = ropt.BayesOptModel(
80
+ train_data, test_data,
81
+ model_name='my_model',
82
+ resp_nme='target',
83
+ weight_nme='weight',
84
+ factor_nmes=feature_list,
85
+ cate_list=categorical_features,
86
+ )
87
+ model.bayesopt_xgb(max_evals=100) # Train XGBoost
88
+ model.bayesopt_resnet(max_evals=50) # Train ResNet
89
+ model.bayesopt_ft(max_evals=50) # Train FT-Transformer
90
+
91
+ # Pricing: build factor table
92
+ from ins_pricing.pricing import build_factor_table
93
+ factors = build_factor_table(
94
+ df,
95
+ factor_col='age_band',
96
+ loss_col='claim_amount',
97
+ exposure_col='exposure',
98
+ )
99
+
100
+ # Production: batch scoring
101
+ from ins_pricing.production import batch_score
102
+ scores = batch_score(model.trainers['xgb'].predict, df)
103
+
104
+ # Model governance
105
+ from ins_pricing.governance import ModelRegistry
106
+ registry = ModelRegistry('models.json')
107
+ registry.register(model_name, version, metrics=metrics)
108
+ ```
109
+
110
+ ### Project Structure
111
+
112
+ ```
113
+ ins_pricing/
114
+ cli/ # Command-line entry points
115
+ modelling/
116
+ core/bayesopt/ # ML model training core
117
+ explain/ # Model interpretability
118
+ plotting/ # Model visualization
119
+ pricing/ # Insurance pricing module
120
+ production/ # Production deployment module
121
+ governance/ # Model governance
122
+ reporting/ # Report generation
123
+ utils/ # Utilities
124
+ tests/ # Test suite
125
+ ```
126
+
127
+ ### Installation
128
+
129
+ ```bash
130
+ # Basic installation
131
+ pip install ins_pricing
132
+
133
+ # Full installation (all optional dependencies)
134
+ pip install ins_pricing[all]
135
+
136
+ # Install specific extras
137
+ pip install ins_pricing[bayesopt] # Model training
138
+ pip install ins_pricing[explain] # Model explanation
139
+ pip install ins_pricing[plotting] # Visualization
140
+ pip install ins_pricing[gnn] # Graph neural networks
141
+ ```
142
+
143
+ #### Multi-platform and GPU notes
144
+
145
+ - Install the correct PyTorch build for your platform/GPU before installing extras.
146
+ - Torch Geometric requires platform-specific wheels; follow the official PyG install guide.
147
+ - Multi-GPU uses torch.distributed/DataParallel where supported; Windows disables CUDA DDP.
148
+
149
+ ---
150
+ ## PyPI Upload (scripts)
151
+
152
+ This repo includes upload scripts for Windows and Linux/macOS.
153
+
154
+ ### Windows
155
+
156
+ ```cmd
157
+ set TWINE_PASSWORD=your_pypi_token_here
158
+ python -m build
159
+ upload_to_pypi.bat
160
+ ```
161
+
162
+ ### Linux / macOS
163
+
164
+ ```bash
165
+ chmod +x upload_to_pypi.sh
166
+ export TWINE_PASSWORD='your_pypi_token_here'
167
+ python -m build
168
+ ./upload_to_pypi.sh
169
+ ```
170
+
171
+ ### Makefile (if make is available)
172
+
173
+ ```bash
174
+ make build
175
+ make upload
176
+ ```
177
+
178
+ ### Tips
179
+
180
+ - Never commit tokens to version control.
181
+ - Use environment variables or secret managers to store credentials.
182
+ - Test with TestPyPI before publishing when needed.
@@ -0,0 +1,130 @@
1
+ # Insurance-Pricing
2
+
3
+ A reusable toolkit for insurance modeling, pricing, governance, and reporting.
4
+
5
+ ## Overview
6
+
7
+ Insurance-Pricing (ins_pricing) is an enterprise-grade Python library designed for machine learning
8
+ model training, pricing calculations, and model governance workflows in the insurance industry.
9
+
10
+ ### Core Modules
11
+
12
+ | Module | Description |
13
+ |--------|-------------|
14
+ | modelling | ML model training (GLM, XGBoost, ResNet, FT-Transformer, GNN) and model interpretability |
15
+ | pricing | Factor table construction, numeric binning, premium calibration, exposure calculation, PSI monitoring |
16
+ | production | Model prediction, batch scoring, data drift detection, production metrics monitoring |
17
+ | governance | Model registry, version management, approval workflows, audit logging |
18
+ | reporting | Report generation (Markdown format), report scheduling |
19
+ | utils | Data validation, performance profiling, device management, logging configuration |
20
+
21
+ ### Quick Start
22
+
23
+ ```python
24
+ # Model training with Bayesian optimization
25
+ from ins_pricing import bayesopt as ropt
26
+
27
+ model = ropt.BayesOptModel(
28
+ train_data, test_data,
29
+ model_name='my_model',
30
+ resp_nme='target',
31
+ weight_nme='weight',
32
+ factor_nmes=feature_list,
33
+ cate_list=categorical_features,
34
+ )
35
+ model.bayesopt_xgb(max_evals=100) # Train XGBoost
36
+ model.bayesopt_resnet(max_evals=50) # Train ResNet
37
+ model.bayesopt_ft(max_evals=50) # Train FT-Transformer
38
+
39
+ # Pricing: build factor table
40
+ from ins_pricing.pricing import build_factor_table
41
+ factors = build_factor_table(
42
+ df,
43
+ factor_col='age_band',
44
+ loss_col='claim_amount',
45
+ exposure_col='exposure',
46
+ )
47
+
48
+ # Production: batch scoring
49
+ from ins_pricing.production import batch_score
50
+ scores = batch_score(model.trainers['xgb'].predict, df)
51
+
52
+ # Model governance
53
+ from ins_pricing.governance import ModelRegistry
54
+ registry = ModelRegistry('models.json')
55
+ registry.register(model_name, version, metrics=metrics)
56
+ ```
57
+
58
+ ### Project Structure
59
+
60
+ ```
61
+ ins_pricing/
62
+ cli/ # Command-line entry points
63
+ modelling/
64
+ core/bayesopt/ # ML model training core
65
+ explain/ # Model interpretability
66
+ plotting/ # Model visualization
67
+ pricing/ # Insurance pricing module
68
+ production/ # Production deployment module
69
+ governance/ # Model governance
70
+ reporting/ # Report generation
71
+ utils/ # Utilities
72
+ tests/ # Test suite
73
+ ```
74
+
75
+ ### Installation
76
+
77
+ ```bash
78
+ # Basic installation
79
+ pip install ins_pricing
80
+
81
+ # Full installation (all optional dependencies)
82
+ pip install ins_pricing[all]
83
+
84
+ # Install specific extras
85
+ pip install ins_pricing[bayesopt] # Model training
86
+ pip install ins_pricing[explain] # Model explanation
87
+ pip install ins_pricing[plotting] # Visualization
88
+ pip install ins_pricing[gnn] # Graph neural networks
89
+ ```
90
+
91
+ #### Multi-platform and GPU notes
92
+
93
+ - Install the correct PyTorch build for your platform/GPU before installing extras.
94
+ - Torch Geometric requires platform-specific wheels; follow the official PyG install guide.
95
+ - Multi-GPU uses torch.distributed/DataParallel where supported; Windows disables CUDA DDP.
96
+
97
+ ---
98
+ ## PyPI Upload (scripts)
99
+
100
+ This repo includes upload scripts for Windows and Linux/macOS.
101
+
102
+ ### Windows
103
+
104
+ ```cmd
105
+ set TWINE_PASSWORD=your_pypi_token_here
106
+ python -m build
107
+ upload_to_pypi.bat
108
+ ```
109
+
110
+ ### Linux / macOS
111
+
112
+ ```bash
113
+ chmod +x upload_to_pypi.sh
114
+ export TWINE_PASSWORD='your_pypi_token_here'
115
+ python -m build
116
+ ./upload_to_pypi.sh
117
+ ```
118
+
119
+ ### Makefile (if make is available)
120
+
121
+ ```bash
122
+ make build
123
+ make upload
124
+ ```
125
+
126
+ ### Tips
127
+
128
+ - Never commit tokens to version control.
129
+ - Use environment variables or secret managers to store credentials.
130
+ - Test with TestPyPI before publishing when needed.
@@ -1,74 +1,66 @@
1
- # Ins-Pricing
2
-
3
- Distribution name: Ins-Pricing (import package is `ins_pricing`, legacy alias `user_packages` still works).
4
-
5
- Reusable modelling and pricing utilities organized as a small toolbox with clear boundaries
6
- between modelling, production, governance, and reporting.
7
-
8
- ## Architecture
9
-
10
- - `cli/`: CLI entry points + shared utilities.
11
- - `modelling/`
12
- - `core/`: BayesOpt training core (GLM / XGB / ResNet / FT / GNN).
13
- - `plotting/`: model-agnostic curves and geo visualizations.
14
- - `explain/`: permutation, gradients, and SHAP helpers.
15
- - `docs/modelling/`: modelling documentation.
16
- - `examples/modelling/`: demo configs + notebooks (repo only; not packaged).
17
- - `pricing/`: factor tables, calibration, exposure, monitoring.
18
- - `production/`: scoring, metrics, drift/PSI.
19
- - `governance/`: registry, release, audit, approval workflow.
20
- - `reporting/`: report builder + scheduler.
21
-
22
- ## Call flow (typical)
23
-
24
- 1. Model training
25
- - Python API: `from ins_pricing.modelling import BayesOptModel`
26
- - CLI: `python ins_pricing/cli/BayesOpt_entry.py --config-json ...`
27
- 2. Evaluation & visualization
28
- - Curves: `from ins_pricing.plotting import curves`
29
- - Importance: `from ins_pricing.plotting import importance`
30
- - Geo: `from ins_pricing.plotting import geo`
31
- 3. Explainability
32
- - `from ins_pricing.explain import permutation_importance, integrated_gradients_torch`
33
- 4. Pricing loop
34
- - `from ins_pricing.pricing import build_factor_table, rate_premium`
35
- 5. Production & governance
36
- - `from ins_pricing.production import batch_score, psi_report`
37
- - `from ins_pricing.governance import ModelRegistry, ReleaseManager`
38
- 6. Reporting
39
- - `from ins_pricing.reporting import build_report, write_report, schedule_daily`
40
-
41
- ## Import notes
42
-
43
- - `ins_pricing` exposes lightweight lazy imports so that `pricing/production/governance`
44
- can be used without installing heavy ML dependencies.
45
- - Migration note: CLI entry points now live under `ins_pricing/cli/` and demo assets are under
46
- `ins_pricing/examples/modelling/`. Update any scripts that referenced `ins_pricing/modelling/cli/*` or
47
- `ins_pricing/modelling/examples/*`.
48
- - Demo notebooks/configs live in the repo under `ins_pricing/examples/modelling/` and are not shipped in the PyPI package.
49
- - Heavy dependencies are only required when you import or use the related modules:
50
- - BayesOpt: `torch`, `optuna`, `xgboost`, etc.
51
- - Explain: `torch` (gradients), `shap` (SHAP).
52
- - Geo plotting on basemap: `contextily`.
53
- - Plotting: `matplotlib`.
54
-
55
- ## Multi-platform & GPU installation notes
56
-
57
- - **Install PyTorch first**: Use the correct PyTorch build for your platform/GPU (CUDA/ROCm/MPS)
58
- before installing the `bayesopt`, `explain`, or `gnn` extras. This avoids incompatible wheels.
59
- - **GNN dependencies**: `torch-geometric` and its companion packages are platform-specific. Follow
60
- the official PyG install guide for your CUDA/ROCm/CPU environment, then install
61
- `ins_pricing[gnn]`.
62
- - **Multi-GPU**: Training utilities will select CUDA/MPS/CPU automatically. Multi-GPU uses DDP or
63
- DataParallel when supported; on Windows, CUDA DDP is disabled and will fall back to single-GPU or
64
- DataParallel where available.
65
-
66
- ## Backward-compatible imports
67
-
68
- Legacy import paths continue to work:
69
-
70
- - `import user_packages`
71
- - `import user_packages.bayesopt`
72
- - `import user_packages.plotting`
73
- - `import user_packages.explain`
74
- - `import user_packages.BayesOpt`
1
+ # ins_pricing
2
+
3
+ Distribution name: ins_pricing (import package is `ins_pricing`; legacy alias `user_packages` still works).
4
+
5
+ Reusable modelling and pricing utilities organized as a small toolbox with clear boundaries
6
+ between modelling, production, governance, and reporting.
7
+
8
+ ## Architecture
9
+
10
+ - `cli/`: CLI entry points and shared utilities.
11
+ - `modelling/`
12
+ - `core/`: BayesOpt training core (GLM / XGB / ResNet / FT / GNN).
13
+ - `plotting/`: model-agnostic curves and geo visualizations.
14
+ - `explain/`: permutation, gradients, and SHAP helpers.
15
+ - `examples/`: demo configs and notebooks (repo only; not packaged).
16
+ - `pricing/`: factor tables, calibration, exposure, monitoring.
17
+ - `production/`: scoring, metrics, drift/PSI.
18
+ - `governance/`: registry, approval, audit workflows.
19
+ - `reporting/`: report builder and scheduler.
20
+
21
+ ## Call flow (typical)
22
+
23
+ 1. Model training
24
+ - Python API: `from ins_pricing.modelling import BayesOptModel`
25
+ - CLI: `python ins_pricing/cli/BayesOpt_entry.py --config-json ...`
26
+ 2. Evaluation and visualization
27
+ - Curves: `from ins_pricing.plotting import curves`
28
+ - Importance: `from ins_pricing.plotting import importance`
29
+ - Geo: `from ins_pricing.plotting import geo`
30
+ 3. Explainability
31
+ - `from ins_pricing.explain import permutation_importance, integrated_gradients_torch`
32
+ 4. Pricing loop
33
+ - `from ins_pricing.pricing import build_factor_table, rate_premium`
34
+ 5. Production and governance
35
+ - `from ins_pricing.production import batch_score, psi_report`
36
+ - `from ins_pricing.governance import ModelRegistry, ReleaseManager`
37
+ 6. Reporting
38
+ - `from ins_pricing.reporting import build_report, write_report, schedule_daily`
39
+
40
+ ## Import notes
41
+
42
+ - `ins_pricing` exposes lightweight lazy imports so that pricing/production/governance
43
+ can be used without installing heavy ML dependencies.
44
+ - Demo notebooks/configs live in the repo under `examples/` and are not shipped
45
+ in the PyPI package.
46
+ - Heavy dependencies are only required when you import or use the related modules:
47
+ - BayesOpt: `torch`, `optuna`, `xgboost`, etc.
48
+ - Explain: `torch` (gradients), `shap` (SHAP).
49
+ - Geo plotting on basemap: `contextily`.
50
+ - Plotting: `matplotlib`.
51
+
52
+ ## Multi-platform and GPU notes
53
+
54
+ - Install the correct PyTorch build for your platform/GPU before installing extras.
55
+ - Torch Geometric requires platform-specific wheels; follow the official PyG install guide.
56
+ - Multi-GPU uses DDP or DataParallel where supported; Windows disables CUDA DDP.
57
+
58
+ ## Backward-compatible imports
59
+
60
+ Legacy import paths continue to work:
61
+
62
+ - `import user_packages`
63
+ - `import user_packages.bayesopt`
64
+ - `import user_packages.plotting`
65
+ - `import user_packages.explain`
66
+ - `import user_packages.BayesOpt`