--- id: pyjpt version: "1.3.4" license: unclear license_treatment: unclear maintenance: active --- # pyjpt — Joint Probability Trees - A formalism for learning and reasoning about joint probability distributions License: unclear · Maintenance: active · Downloads: 232.3K/mo ## What it is and what it does pyjpt implements Joint Probability Trees, a formalism for learning tractable probabilistic models from data. Unlike rigid dependency models, JPTs build tree structures that partition the probability space based on what the training data reveals, then use those partitions for inference. The package supports hybrid models mixing symbolic (discrete) and subsymbolic (continuous) variables without requiring prior knowledge of variable relationships. The core value is interpretability: every inference result comes with white-box reasoning about how the tree structure produced that answer. Learning and inference scale linearly. The package wraps Cython extensions for performance and depends on scipy, numpy, pandas, anytree, tqdm, dnutils, deprecated, and typing-extensions for numerical and tree operations. Optional dependencies add plotting, sequential modeling, and MLflow integration. Use it for: - Learn probabilistic models from mixed symbolic and continuous data without specifying a dependency structure upfront. - Perform interpretable probabilistic inference where you need to explain why a posterior probability was computed. - Build hybrid models combining discrete categories and continuous measurements in a single tractable framework. - Analyze data where the relevant probability partitions are unknown and must be discovered from training examples. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. pyjpt learns and reasons about joint probability distributions using tree-based partitioning, supporting both symbolic and subsymbolic variables in a single hybrid model with interpretable white-box inference. Yes, if you need interpretable probabilistic inference on hybrid data and can tolerate medium install friction. The package is actively maintained, has no known vulnerabilities, and offers a genuinely different approach to probabilistic modeling—tree-based partitioning rather than fixed dependency graphs. Verify the license terms first. ## Install pip install pyjpt uv add pyjpt poetry add pyjpt ## Installing pyjpt Before you install: Medium friction: 8 runtime dependencies including scipy, numpy, and pandas. Wheels available for multiple Python versions on Linux x86_64. Last release 74 days ago with active maintenance status. License in practice: License treatment is unclear—no SPDX identifier or raw license text provided. Verify the license terms before use in proprietary or copyleft-sensitive contexts. Quickstart: pip install pyjpt import pyjpt # Create and train a JPT model on your data # See documentation for full API usage Requires Python >=3.8. Cython extensions are compiled during installation; set JPT_NO_CYTHON=1 to skip pre-compilation. Verify before relying: - Whether the unclear license permits commercial use or requires attribution. - Performance characteristics and scalability limits for large datasets. - Availability of pre-built wheels for platforms beyond Linux x86_64. - Maturity and stability guarantees relative to the research publication. ## Package facts - License: not declared (unclear) - Python support: supports_current - Install friction: medium - Maintenance: active - Downloads: 232.3K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags probabilistic graphical models, joint probability distribution learning, hybrid symbolic subsymbolic reasoning, interpretable probabilistic inference, tree-based probability partitioning, tractable probabilistic reasoning, white-box Bayesian inference, probabilistic-models, interpretable-ai, hybrid-reasoning [View on SkillFed](https://skillfed.io/packages/pyjpt) · [View on PyPI](https://pypi.org/project/pyjpt/)