{"adoption": {"forks": 1629, "observed_at": "2026-08-28T04:09:56.121776+00:00", "stars": 7132}, "canonical_url": "https://ross.abutalabs.com/products/pyprobml", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Python code for \"Probabilistic Machine learning\" book by Kevin Murphy", "domain": ["machine-learning", "education", "data-science", "tutorials"], "enriched": true, "function": ["machine-learning", "data-visualization", "developer-tools"], "health_score": 62, "homepage": null, "language": "Jupyter Notebook", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["probml/pyprobml"], "name": "probml/pyprobml", "platform": ["python", "jvm-scripting", "cross-platform", "browser"], "pushed_at": "2026-02-26T17:43:52+00:00", "repo": "probml/pyprobml", "stars": 7132, "tags": ["jupyter-notebooks", "probabilistic-machine-learning", "jax", "tensorflow", "pytorch", "kevin-murphy", "textbook-code", "colab", "probabilistic-programming"], "topics": ["jupyter-notebooks", "machine-learning", "colab", "pml", "probabilistic-programming", "jax", "tensorflow", "pytorch", "pymc3", "numpyro", "flax", "pyro", "blackjax"], "urls": [], "use_cases": ["reproduce figures from the probabilistic machine learning book", "learn probabilistic machine learning with runnable code examples", "study JAX and probabilistic programming through notebooks", "find worked examples of Bayesian machine learning algorithms", "run machine learning textbook notebooks in Google Colab", "learn numpyro, blackjax, and flax through examples"], "what_it_is": "A collection of Jupyter notebooks with Python code reproducing the figures from Kevin Murphy's 'Probabilistic Machine Learning' books (Introduction and Advanced Topics). The code uses numpy, scipy, sklearn, JAX, TensorFlow, and PyTorch, and is designed to run locally or in Google Colab.", "when_to_avoid": ["you need a production-ready machine learning library", "you need actively developed or supported software - the code is in maintenance mode", "you need a curated course rather than figure-reproduction notebooks"], "when_to_choose": ["you are reading Kevin Murphy's PML books and want accompanying code", "you want educational notebooks on probabilistic ML and Bayesian methods", "you want examples across multiple frameworks like JAX, TensorFlow, and PyTorch"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pyprobml", "repo": "probml/pyprobml", "role": "main", "score": 54}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:40:03.410209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a823a618fe926d50a9f555f81e994227ae99b4701850a0344e33580b37bbb193", "fetched_at": "2026-08-28T04:09:56.121776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probml/pyprobml"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:40:03.410209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a823a618fe926d50a9f555f81e994227ae99b4701850a0344e33580b37bbb193", "fetched_at": "2026-08-28T04:09:56.121776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probml/pyprobml"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:40:03.410209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a823a618fe926d50a9f555f81e994227ae99b4701850a0344e33580b37bbb193", "fetched_at": "2026-08-28T04:09:56.121776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probml/pyprobml"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:40:03.410209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a823a618fe926d50a9f555f81e994227ae99b4701850a0344e33580b37bbb193", "fetched_at": "2026-08-28T04:09:56.121776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probml/pyprobml"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:40:03.410209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a823a618fe926d50a9f555f81e994227ae99b4701850a0344e33580b37bbb193", "fetched_at": "2026-08-28T04:09:56.121776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probml/pyprobml"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:40:03.410209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a823a618fe926d50a9f555f81e994227ae99b4701850a0344e33580b37bbb193", "fetched_at": "2026-08-28T04:09:56.121776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probml/pyprobml"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.121776+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:40:03.410209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a823a618fe926d50a9f555f81e994227ae99b4701850a0344e33580b37bbb193", "fetched_at": "2026-08-28T04:09:56.121776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probml/pyprobml"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:40:03.410209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a823a618fe926d50a9f555f81e994227ae99b4701850a0344e33580b37bbb193", "fetched_at": "2026-08-28T04:09:56.121776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probml/pyprobml"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:40:03.410209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a823a618fe926d50a9f555f81e994227ae99b4701850a0344e33580b37bbb193", "fetched_at": "2026-08-28T04:09:56.121776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probml/pyprobml"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:40:03.410209+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a823a618fe926d50a9f555f81e994227ae99b4701850a0344e33580b37bbb193", "fetched_at": "2026-08-28T04:09:56.121776+00:00", "kind": "readme", "missing": false, "url": "https://github.com/probml/pyprobml"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 69, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3668, "days_push": 188, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 54, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}