界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

distributions

distributions

【效率与协作】Guides pomegranate distribution workflows, including Normal, Categorical, ConditionalCategorical, IndependentComponents, probability scoring, sampling, fitting, weights, missing values, and distribution composition.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: distributions description: "Guides pomegranate distribution workflows, including Normal, Categorical, ConditionalCategorical, IndependentComponents, probability scoring, sampling, fitting, weights, missing values, and distribution composition." disable-model-invocation: true metadata: disco-role: operating license: MIT

distributions

Use this sub-skill when

Use this sub-skill for pomegranate's base distribution family and distribution-level workflows: instantiate a distribution from parameters, fit parameters from samples, compute probabilities, sample new values, use sample weights, freeze or update parameters, combine heterogeneous feature distributions, or prepare distributions as components for mixtures, classifiers, HMMs, Markov chains, Bayesian networks, or factor graphs.

Start here

Typical imports:

from pomegranate.distributions import Normal, Categorical, Exponential
from pomegranate.distributions import ConditionalCategorical, JointCategorical
from pomegranate.distributions import IndependentComponents, ZeroInflated

Read references/api-reference.md for constructor signatures, shape expectations, and class selection. Run scripts/smoke_distributions.py after installing the package if you need a tiny API sanity check.

Core workflow

  1. Choose the distribution by data type. Continuous positive data often uses Exponential, Gamma, or LogNormal; general continuous data often uses Normal; binary/count/categorical data uses Bernoulli, Poisson, Categorical, ConditionalCategorical, or JointCategorical.
  2. Initialize directly or learn from data. Pass parameters when known, or instantiate without parameters and call fit(X).
  3. Keep shapes explicit. Use (n, d) for ordinary distributions. Categorical graph/sequence distributions use integer-coded categories.
  4. Score with log probabilities first. Prefer log_probability(X) for numerical stability; use probability(X) only when actual probabilities are needed.
  5. Use summarize + from_summaries for chunks. This is the out-of-core path shared with larger pomegranate models.
  6. Compose heterogeneous columns with IndependentComponents. Use one initialized or trainable univariate distribution per feature when a single multivariate family is inappropriate.

Cross-cutting behavior

Important guardrails

  • Pomegranate distributions represent the probability of full examples, not independent per-feature log probabilities unless the chosen distribution's semantics say so.
  • Do not use pre-v1 names such as NormalDistribution; use Normal and the current distribution class names.
  • Do not assume all distribution wrappers implement every base method. ZeroInflated is useful for fitting excess-zero data but should be checked for the exact scoring/sampling method a task needs.
  • Keep model/device and tensor/device aligned before using CUDA.
我的收藏