Metadata-Version: 2.4
Name: ins_pricing
Version: 0.2.9
Summary: Reusable modelling, pricing, governance, and reporting utilities.
Author: meishi125478
License: Proprietary
Keywords: pricing,insurance,bayesopt,ml
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.20
Requires-Dist: pandas>=1.4
Provides-Extra: bayesopt
Requires-Dist: torch>=1.13; extra == "bayesopt"
Requires-Dist: optuna>=3.0; extra == "bayesopt"
Requires-Dist: xgboost>=1.6; extra == "bayesopt"
Requires-Dist: scikit-learn>=1.1; extra == "bayesopt"
Requires-Dist: statsmodels>=0.13; extra == "bayesopt"
Requires-Dist: joblib>=1.2; extra == "bayesopt"
Requires-Dist: matplotlib>=3.5; extra == "bayesopt"
Provides-Extra: plotting
Requires-Dist: matplotlib>=3.5; extra == "plotting"
Requires-Dist: scikit-learn>=1.1; extra == "plotting"
Provides-Extra: explain
Requires-Dist: torch>=1.13; extra == "explain"
Requires-Dist: shap>=0.41; extra == "explain"
Requires-Dist: scikit-learn>=1.1; extra == "explain"
Provides-Extra: geo
Requires-Dist: contextily>=1.3; extra == "geo"
Requires-Dist: matplotlib>=3.5; extra == "geo"
Provides-Extra: gnn
Requires-Dist: torch>=1.13; extra == "gnn"
Requires-Dist: pynndescent>=0.5; extra == "gnn"
Requires-Dist: torch-geometric>=2.3; extra == "gnn"
Provides-Extra: all
Requires-Dist: torch>=1.13; extra == "all"
Requires-Dist: optuna>=3.0; extra == "all"
Requires-Dist: xgboost>=1.6; extra == "all"
Requires-Dist: scikit-learn>=1.1; extra == "all"
Requires-Dist: statsmodels>=0.13; extra == "all"
Requires-Dist: joblib>=1.2; extra == "all"
Requires-Dist: matplotlib>=3.5; extra == "all"
Requires-Dist: shap>=0.41; extra == "all"
Requires-Dist: contextily>=1.3; extra == "all"
Requires-Dist: pynndescent>=0.5; extra == "all"
Requires-Dist: torch-geometric>=2.3; extra == "all"

# Insurance-Pricing

A reusable toolkit for insurance modeling, pricing, governance, and reporting.

## Overview

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.

### Core Modules

| Module | Description |
|--------|-------------|
| **modelling** | ML model training (GLM, XGBoost, ResNet, FT-Transformer, GNN) and model interpretability (SHAP, permutation importance) |
| **pricing** | Factor table construction, numeric binning, premium calibration, exposure calculation, PSI monitoring |
| **production** | Model prediction, batch scoring, data drift detection, production metrics monitoring |
| **governance** | Model registry, version management, approval workflows, audit logging |
| **reporting** | Report generation (Markdown format), report scheduling |
| **utils** | Data validation, performance profiling, device management, logging configuration |

### Quick Start

```python
# Model training with Bayesian optimization
from ins_pricing import bayesopt as ropt

model = ropt.BayesOptModel(
    train_data, test_data,
    model_name='my_model',
    resp_nme='target',
    weight_nme='weight',
    factor_nmes=feature_list,
    cate_list=categorical_features,
)
model.bayesopt_xgb(max_evals=100)      # Train XGBoost
model.bayesopt_resnet(max_evals=50)    # Train ResNet
model.bayesopt_ft(max_evals=50)        # Train FT-Transformer

# Pricing: build factor table
from ins_pricing.pricing import build_factor_table
factors = build_factor_table(
    df,
    factor_col='age_band',
    loss_col='claim_amount',
    exposure_col='exposure',
)

# Production: batch scoring
from ins_pricing.production import batch_score
scores = batch_score(model.trainers['xgb'].predict, df)

# Model governance
from ins_pricing.governance import ModelRegistry
registry = ModelRegistry('models.json')
registry.register(model_name, version, metrics=metrics)
```

### Project Structure

```
ins_pricing/
├── cli/                    # Command-line entry points
├── modelling/
│   ├── core/bayesopt/     # ML model training core
│   ├── explain/           # Model interpretability
│   └── plotting/          # Model visualization
├── pricing/               # Insurance pricing module
├── production/            # Production deployment module
├── governance/            # Model governance
├── reporting/             # Report generation
├── utils/                 # Utilities
└── tests/                 # Test suite
```

### Installation

```bash
# Basic installation
pip install ins_pricing

# Full installation (all optional dependencies)
pip install ins_pricing[all]

# Install specific extras
pip install ins_pricing[bayesopt]    # Model training
pip install ins_pricing[explain]     # Model explanation
pip install ins_pricing[plotting]    # Visualization
pip install ins_pricing[gnn]         # Graph neural networks
```

### Requirements

- Python >= 3.9
- Core dependencies: numpy >= 1.20, pandas >= 1.4

### License

Proprietary
