bayespy.nodes.Categorical

class bayespy.nodes.Categorical(p, **kwargs)[source]

Node for categorical random variables.

The node models a categorical random variable x \in \{0,\ldots,K-1\} with prior probabilities \{p_0, \ldots, p_{K-1}\} for each category:

p(x=k) = p_k \quad \text{for } k\in \{0,\ldots,K-1\}.

Parameters:
p : Dirichlet-like node or (…,K)-array

Probabilities for each category

__init__(p, **kwargs)[source]

Create Categorical node.

Methods

__init__(p, **kwargs) Create Categorical node.
add_plate_axis(to_plate)
broadcasting_multiplier(*args)
delete() Delete this node and the children
get_gradient(rg) Computes gradient with respect to the natural parameters.
get_mask()
get_moments()
get_parameters() Return parameters of the VB distribution.
get_pdf_nodes()
get_riemannian_gradient() Computes the Riemannian/natural gradient.
get_shape(ind)
has_plotter() Return True if the node has a plotter
initialize_from_parameters(*args)
initialize_from_prior()
initialize_from_random() Set the variable to a random sample from the current distribution.
initialize_from_value(x, *args)
load(filename)
logpdf(X[, mask]) Compute the log probability density function Q(X) of this node.
lower_bound_contribution([gradient, …]) Compute E[ log p(X|parents) - log q(X) ]
lowerbound()
move_plates(from_plate, to_plate)
observe(x, *args[, mask]) Fix moments, compute f and propagate mask.
pdf(X[, mask]) Compute the probability density function of this node.
plot([fig]) Plot the node distribution using the plotter of the node
random() Draw a random sample from the distribution.
save(filename)
set_parameters(x) Set the parameters of the VB distribution.
set_plotter(plotter)
show() Print the distribution using standard parameterization.
unobserve()
update([annealing])

Attributes

dims
plates
plates_multiplier Plate multiplier is applied to messages to parents