Skip to main content

phenoforge

Phenomenological model-family bank and ensemble calibration engine for industrial processes. The reference implementation of BAPE (Bootstrap-Aggregated Phenomenological Ensembles): instead of selecting one phenomenological model for a process dataset, fit many realizations (model families x parameter multistarts x bootstrap resamples) from a curated family bank and aggregate them into a calibrated ensemble with structural inclusion probabilities.

Consumed by the Fragua research product (CAOS_RES_Fragua); designed as a standalone, domain-agnostic library. The core is pure numpy/scipy (Pyodide-safe).

What it provides

  • A family bank (phenoforge.families): named, cited, bounded phenomenological models with physical parameter ranges and declared calibration-data contracts. Shipping now: the flotation kinetics zoo (Garcia-Zuniga first-order, Klimpel, Kelsall, modified Kelsall, gamma rate distribution, second-order, fully mixed, bank of N mixers) and the comminution energy-size laws (Rittinger, Kick, Bond, Morrell Mi). The bank grows with the Fragua build (thickening, leaching, utilities, PBM).
  • Fitting (phenoforge.fit): bounded multistart trust-region nonlinear least squares per family; information criteria (AIC/AICc/BIC) on every fit.
  • Ensembles (phenoforge.ensemble):
    • select / akaike_weights / averaged_prediction: IC selection and multimodel averaging (Burnham-Anderson).
    • glue_fit: GLUE behavioural parameter-set ensembles (Beven-Binley).
    • bootstrap_fit: bagging/bragging of one family (paired or moving-block).
    • stack_fit: cross-validated convex stacking over the bank (super-learner recipe; M-open rationale per Yao-Vehtari-Simpson-Gelman).
    • bape_fit: the BAPE ensemble (bootstrap x family-library subsampling, one fitted model per member, inclusion probabilities over families).
  • Metrics (phenoforge.metrics): point (RMSE/MAE/R2), probabilistic calibration (ensemble CRPS, PIT, interval coverage), and structural readouts (weight entropy, known-truth structural recovery that refuses to run silently null).
  • Routing (phenoforge.route): match a dataset's declared data kinds to the families they can calibrate.

Quick start

import numpy as np
from phenoforge import list_families
from phenoforge.families import flotation
from phenoforge.ensemble import bape_fit

t = np.array([0.5, 1, 2, 4, 8, 12, 16, 20], dtype=float)
r = 0.85 * (1 - np.exp(-1.2 * t))  # a batch flotation test

ens = bape_fit(flotation.BATCH_FAMILIES, t, r, n_members=200, seed=0)
print(ens.selection_shares())        # which family explains the data, with what share
print(ens.quantiles(t))              # calibrated predictive bands

Method background (primary sources)

  • Fasel, Kutz, Brunton, Brunton 2022. Ensemble-SINDy. Proc. R. Soc. A 478:20210904. DOI 10.1098/rspa.2021.0904.
  • Pinto, de Azevedo, Oliveira, von Stosch 2019. Bioprocess Biosyst. Eng. 42:1853-1865. DOI 10.1007/s00449-019-02181-y.
  • Duan, Ajami, Gao, Sorooshian 2007. Adv. Water Resour. 30:1371-1386. DOI 10.1016/j.advwatres.2006.11.014.
  • Beven, Binley 1992. Hydrol. Process. 6:279-298; Beven 2006. J. Hydrol. 320:18-36. DOI 10.1016/j.jhydrol.2005.07.007.
  • Yao, Vehtari, Simpson, Gelman 2018. Bayesian Anal. 13:917-1007. DOI 10.1214/17-BA1091.
  • Burnham, Anderson 2004. Sociol. Methods Res. 33:261-304. DOI 10.1177/0049124104268644.
  • Polat, Chander 2000. Int. J. Miner. Process. 58:145-166. DOI 10.1016/S0301-7516(99)00069-1 (flotation family library).

Development

py -3.12 -m venv .venv
.venv/Scripts/python -m pip install -e ".[dev]"
.venv/Scripts/python -m pytest tests -v
.venv/Scripts/python -m ruff check src tests

License

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phenoforge-0.2.1.tar.gz (33.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

phenoforge-0.2.1-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

Details for the file phenoforge-0.2.1.tar.gz.

File metadata

  • Download URL: phenoforge-0.2.1.tar.gz
  • Upload date:
  • Size: 33.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for phenoforge-0.2.1.tar.gz
Algorithm Hash digest
SHA256 12e839f2d9e44633a321a22cea945f04547cf239b30015f07829669fcbca2687
MD5 2c3cee07333ff0db3aad21f80f165693
BLAKE2b-256 03851810af8200d67b8e461bb7d582a3f24dc4867c45afefd12fd7968c4f47c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for phenoforge-0.2.1.tar.gz:

Publisher: release.yml on fsantibanezleal/CAOS_PhenoForge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file phenoforge-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: phenoforge-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 35.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for phenoforge-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 00868f3224f836240f5c73c380aee0b48d148f3c8ea07c789f5a8c66ed7a5aec
MD5 94b5ec75d5a8267a9747862789de05a2
BLAKE2b-256 d089cd0e5383f4dc5b80c98386f8e9ae2ab9d69a19c4c0708c43db5ec59a4ad2

See more details on using hashes here.

Provenance

The following attestation bundles were made for phenoforge-0.2.1-py3-none-any.whl:

Publisher: release.yml on fsantibanezleal/CAOS_PhenoForge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

This release

0.2.1 This release

2 files

0.2.0

2 files

0.1.2

2 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