Skip to main content

feature-dash ⚡

High-performance feature evaluation & interactive web dashboards for tabular ML workflows.

Why feature-dash?

feature-dash Example Screenshot - Light

feature-dash Example Screenshot - Dark

Note: Want to see it in action? View the Sample Interactive Dashboard (HTML) directly in your browser, or check out the Sample WoE Rules (JSON).

PyPI Python License


Overview

feature-dash is a Python library and CLI tool for evaluating tabular features and generating zero-dependency, interactive web dashboards — all from a single function call.

Unlike generic EDA tools, feature-dash is built specifically for machine learning workflows. It supports both unsupervised feature EDA (distributions, percentiles, correlation heatmaps) and supervised predictive intelligence (Information Value, Weight of Evidence, Mutual Information, target leakage detection, and Scikit-Learn WoE transformers).


✨ Key Features

Feature Analysis

  • Smart Adaptive Binning — 4-tier strategy handling discrete, zero-inflated, skewed, and continuous distributions automatically.
  • Information Value (IV) — Quantile-binned predictive power scoring across all features.
  • Mutual Information (MI) — Non-linear dependency scoring for classification and regression targets.
  • Weight of Evidence (WoE) — Per-bin WoE values with interactive Chart.js visualizations.
  • Target Leakage Detection — Automatic flagging of suspected leakage features ($IV \ge 1.0$ or $|r| \ge 0.95$).

PII Safeguards & Column Exclusion

  • Automatic PII Detection — Detects and excludes raw PII columns (emails, phone numbers, names, SSNs, addresses, etc.) using broad pattern matching.
  • Explicit exclude_cols — Pass explicit column exclusion lists for fine-grained control.
  • Interactive Badge & Modal — Displays a 🛡️ Excluded Columns badge with a detailed modal in the dashboard.

Bivariate Analysis

  • Spearman Rank Correlation Matrix — Hierarchically clustered heatmap (Ward distance), excluding nominal noise.
  • Redundant Pair Detection ($|r| \ge 0.75$) — With recommended retention based on Information Value.
  • 2D Quantile Interaction Heatmaps — 5×5 risk grids supporting binary pos_rate and regression target_mean.

Production Integration

  • WoE Scoring Export — Save binning rules as JSON (report.export_woe_rules("woe_rules.json")).
  • Scikit-Learn Transformer — WoETransformer converts DataFrames into WoE-encoded numeric matrices, compatible with pipelines and production inference.
  • DataFrame & CSV Export — report.to_dataframe() and report.to_csv("summary.csv").

Dashboard & Deployment

  • Self-Contained HTML — Single-file dashboards with embedded Chart.js visualizations.
  • Dual Theme — 🌙 Dark Mode / ☀️ Light Mode toggle with dynamic re-rendering.
  • Print & PDF Export — One-click export unwraps multi-tab UI into a clean linear layout.
  • Inline Jupyter Rendering — report.display_in_notebook() for notebook workflows.
  • Single-File Standalone — Zero-dependency standalone_feature_dash.py for air-gapped and restricted environments where pip install is not available.

📦 Installation

pip install feature-dash

⚡ Quickstart

Supervised Feature Analysis

import pandas as pd
from feature_dash import FeatureAnalyzer

df = pd.read_csv("dataset.csv")

analyzer = FeatureAnalyzer(
    df,
    target="SeriousDlqin2yrs",
    n_bins=10,
    exclude_cols=["customer_id", "phone_number"],
)
report = analyzer.fit()

# Generate interactive HTML dashboard
report.to_html(output_path="./reports")

# Export metrics
df_summary = report.to_dataframe()
report.to_csv("feature_summary.csv")

Unsupervised Feature Analysis

analyzer = FeatureAnalyzer(df, target=None, n_bins=15)
report = analyzer.fit()
report.to_html(output_path="./unsupervised_reports")

Inline Jupyter Rendering

report.display_in_notebook(height=850)

WoE Scoring & Scikit-Learn Transformer

# Export WoE binning rules
rules = report.export_woe_rules(filepath="woe_rules.json")

# Convert to scikit-learn transformer
woe_encoder = report.to_transformer()
X_test_woe = woe_encoder.transform(df_test)

# Production: reload from JSON (no FeatureAnalyzer needed)
from feature_dash import WoETransformer

prod_encoder = WoETransformer.from_json("woe_rules.json")
X_prod_woe = prod_encoder.transform(df_prod)

🔒 Air-Gapped & Restricted Environments

For environments where package installation is prohibited (air-gapped clusters, locked-down Jupyter servers, etc.), use the self-contained single-file script:

from standalone_feature_dash import create_feature_dashboard

create_feature_dashboard(
    df,
    target="SeriousDlqin2yrs",
    output_path="feature_dash_report.html",
    display_notebook=True,
)

Note: standalone_feature_dash.py bundles the full analysis engine, HTML template, and dashboard renderer into a single .py file with no external dependencies beyond pandas and numpy.


💻 CLI

# Check version
feature-dash --version

# Supervised analysis
feature-dash analyze dataset.csv --target SeriousDlqin2yrs --output-dir ./reports

# Unsupervised analysis
feature-dash analyze dataset.csv --output-dir ./unsupervised_reports

⚙️ Configuration

analyzer = FeatureAnalyzer(
    df,
    target="target_column",
    n_bins=10,                      # Quantile bins for IV and distributions
    sample_size=100_000,            # Max rows for MI & correlation computation
    n_bivariate_features=6,         # Top features for 2D interaction grids
    max_corr_features=40,           # Max features in correlation matrix
    exclude_cols=["id", "phone"],   # Explicit column exclusions
    force_include=["zipcode_id"],   # Force-include columns that would be auto-dropped
    leakage_iv_threshold=1.0,       # IV threshold for leakage flagging
    leakage_corr_threshold=0.95,    # Correlation threshold for leakage flagging
    drop_high_cardinality=True,     # Auto-drop high-cardinality ID/PII columns
    max_cardinality_ratio=0.7,      # Cardinality ratio cutoff (for n >= 100)
)

📄 License

MIT License — see LICENSE for details.

Metadata

Release files for feature-dash 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for feature-dash 0.1.0
File Size Uploaded
feature_dash-0.1.0.tar.gz 44.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for feature-dash 0.1.0
File Interpreter ABI Platform
feature_dash-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 82.9 kB

Release files / feature_dash-0.1.0.tar.gz

Download URL feature_dash-0.1.0.tar.gz
Size 44.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6f648da535909735f131e644094f4edddcaa96067c945e3ef7f81578f309ad62
BLAKE2b-256 checksum
How to use checksums
dd032c01839f6d7b0072fbe38b91b1d6608344d7bd098175ea2db4916a5ba796
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 8, 2026.

Transparency log

Release files / feature_dash-0.1.0-py3-none-any.whl

Download URL feature_dash-0.1.0-py3-none-any.whl
Size 38.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d4aac9ca32b3741964fb02cae2afc6b9293e19068943b76114b269d7b06f157a
BLAKE2b-256 checksum
How to use checksums
93eaa134cb35e0ce83134bd448ecf593af6deb8551f81f0e95eadfc5eb5a2367
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.2

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page