graph_tool.inference.UncertainBaseState#

class graph_tool.inference.UncertainBaseState(g, nested=True, state_args={}, bstate=None, self_loops=False, init_empty=False, max_m=65536)[source]#

Bases: object

Base state for uncertain network inference.

Methods

collect_marginal([g])

Collect marginal inferred network during MCMC runs.

collect_marginal_multigraph([g])

Collect marginal latent multigraph during MCMC runs.

entropy([latent_edges, density])

Return the entropy, i.e. negative log-likelihood.

get_block_state()

Return the underlying block state, which can be either BlockState or NestedBlockState.

get_edge_prob(u, v[, entropy_args, epsilon])

Return conditional posterior log-probability of edge \((u,v)\).

get_edges_prob(elist[, entropy_args, epsilon])

Return conditional posterior log-probability of an edge list, with shape \((E,2)\).

get_graph()

Return the current inferred graph.

mcmc_sweep([r, multiflip])

Perform sweeps of a Metropolis-Hastings acceptance-rejection sampling MCMC to sample network partitions and latent edges.

multiflip_mcmc_sweep(**kwargs)

Alias for mcmc_sweep() with multiflip=True.

set_state(g, w)

virtual_add_edge(u, v[, entropy_args])

virtual_remove_edge(u, v[, entropy_args])

collect_marginal(g=None)[source]#

Collect marginal inferred network during MCMC runs.

Parameters:
gGraph (optional, default: None)

Previous marginal graph.

Returns:
gGraph

New marginal graph, with internal edge EdgePropertyMap "eprob", containing the marginal probabilities for each edge.

Notes

The posterior marginal probability of an edge \((i,j)\) is defined as

\[\pi_{ij} = \sum_{\boldsymbol A}A_{ij}P(\boldsymbol A|\boldsymbol D)\]

where \(P(\boldsymbol A|\boldsymbol D)\) is the posterior probability given the data.

collect_marginal_multigraph(g=None)[source]#

Collect marginal latent multigraph during MCMC runs.

Parameters:
gGraph (optional, default: None)

Previous marginal multigraph.

Returns:
gGraph

New marginal graph, with internal edge EdgePropertyMap "w" and "wcount", containing the edge multiplicities and their respective counts.

Notes

The mean posterior marginal multiplicity distribution of a multi-edge \((i,j)\) is defined as

\[\pi_{ij}(w) = \sum_{\boldsymbol G}\delta_{w,G_{ij}}P(\boldsymbol G|\boldsymbol D)\]

where \(P(\boldsymbol G|\boldsymbol D)\) is the posterior probability of a multigraph \(\boldsymbol G\) given the data.

entropy(latent_edges=True, density=True, **kwargs)[source]#

Return the entropy, i.e. negative log-likelihood.

get_block_state()[source]#

Return the underlying block state, which can be either BlockState or NestedBlockState.

get_edge_prob(u, v, entropy_args={}, epsilon=1e-08)[source]#

Return conditional posterior log-probability of edge \((u,v)\).

get_edges_prob(elist, entropy_args={}, epsilon=1e-08)[source]#

Return conditional posterior log-probability of an edge list, with shape \((E,2)\).

get_graph()[source]#

Return the current inferred graph.

mcmc_sweep(r=0.5, multiflip=True, **kwargs)[source]#

Perform sweeps of a Metropolis-Hastings acceptance-rejection sampling MCMC to sample network partitions and latent edges. The parameter r controls the probability with which edge move will be attempted, instead of partition moves. The remaining keyword parameters will be passed to mcmc_sweep() or multiflip_mcmc_sweep(), if multiflip=True.

multiflip_mcmc_sweep(**kwargs)[source]#

Alias for mcmc_sweep() with multiflip=True.

set_state(g, w)[source]#
virtual_add_edge(u, v, entropy_args={})[source]#
virtual_remove_edge(u, v, entropy_args={})[source]#