🚀 RapidSegment – Strategic Segmentation & Scorecard Engine
RapidSegment is an industrial‑grade, combinatorial heuristic engine for discovering high‑lift predictive segments and compiling them into transparent, production‑ready scorecards. It bridges the gap between black‑box ML and legacy SQL rules engines.
Rapid Segment Interactive Explainer (Must Try)
📘 Full documentation, architecture diagrams, statistical background, configuration reference, and FAQs live in the repo-level README. This page only covers install + a quick usage example.
📦 Installation
pip install rapidsegment
With the optional no-code Web UI:
pip install "rapidsegment[ui]"
rapidsegment-ui # opens http://localhost:8501
⚡ Quick Start
import numpy as np
import pandas as pd
import duckdb
from rapidsegment import StrategicSegmentBuilder, StrategicSegmentScore
# 1. Synthetic data (or use your own)
np.random.seed(42)
n = 50_000
data = pd.DataFrame({
"cust_id": [f"CUST_{i:05d}" for i in range(n)],
"max_dpd_12m": np.random.choice([0, 15, 30, 60, 90], n, p=[0.7, 0.15, 0.08, 0.05, 0.02]),
"utilization_avg_3m": np.random.uniform(0, 1.2, n),
"risk_segment": np.random.choice(["Low", "Medium", "High"], n, p=[0.6, 0.3, 0.1]),
"default_flag": np.random.choice([0, 1], n, p=[0.95, 0.05]),
})
# 2. Configure and run the builder
builder = StrategicSegmentBuilder(
target="default_flag",
top_n_vars=15,
max_segments=5,
ignore_features=["cust_id"],
)
segments = builder.extract_segments(data)
print(pd.DataFrame(segments)[["segment_id", "count", "lift", "sql_filter"]])
# 3. Build a scorecard
segment_cols = []
scoring_df = data[["cust_id", "default_flag"]].copy()
for seg in segments:
col = f"SEG_{seg['segment_id']}"
scoring_df[col] = duckdb.sql(f"SELECT ({seg['sql_filter']}) FROM data").df().astype(int)
segment_cols.append(col)
scorer = StrategicSegmentScore(target_col="default_flag", primary_key="cust_id", segment_cols=segment_cols)
model = scorer.calculate_and_export_weights(scoring_df, "model.json")
print("Deciles:", model["decile_min_thresholds"])
🧩 How It Fits Together
Raw Data → StrategicSegmentBuilder → Segments (SQL rules) → StrategicSegmentScore → JSON Scorecard
StrategicSegmentBuilder finds high‑lift, hierarchical rules on your data; StrategicSegmentScore turns those rules into a weighted, deployable scorecard. UniversalDataLoader and BigQueryFeatureSelector are available for ingestion and feature screening — see the full README for details on every component, the extraction algorithm, statistical foundations, and the complete configuration reference.
📄 License
MIT — see LICENSE.
Built with ❤️ by Bishwarup Biswas. Special thanks to Guillermo Navas Palencia for Optbinning.
👉 For everything else — features, architecture, config reference, FAQs — see the repo README.
Metadata
Release files for rapidsegment 1.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rapidsegment-1.3.3.tar.gz | 96.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rapidsegment-1.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 203.0 kB
Release files / rapidsegment-1.3.3.tar.gz
| Download URL | rapidsegment-1.3.3.tar.gz |
|---|---|
| Size | 96.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d5acc716fbe86bc75e2e6f63f2ddc939cdf0ec91425974265fd9ef1385d227ad
|
|
BLAKE2b-256 checksum How to use checksums |
d2b98a0773efc11b39cd22cccca3d210d43e2b87e7e90870ff7a89f2d5f29a96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.1
|
Release files / rapidsegment-1.3.3-py3-none-any.whl
| Download URL | rapidsegment-1.3.3-py3-none-any.whl |
|---|---|
| Size | 106.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c832d0a5f8c1833144baccb0091ac1e7434f40b43d9dafe02f6991fed5b2197a
|
|
BLAKE2b-256 checksum How to use checksums |
504188d1efe01515f6552842ce60baccb098f7306ebd3951c51a5f798228ba86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.1
|