Thanks for the quick reply,
The same model selection principles still apply.
So, would it be meaningful to try out 4 possibilities: DC or not, latent multigraph or not, and then compare the entropies? I didn't see in the docs where it says MeasuredBlockState uses the latent Poisson multigraph. I thought the latter is new but the former has been in graph-tool for awhile. Has the former been updated to always use the latter? Will using MeasuredBlockState instead of LatentMultigraphBlockState influence the community detection at all? In other words, if I'm interested in predicting links and doing community detection (both as accurately as possible) should I just use MeasuredBlockState all the time? In the other thread you recommend I use "MeasuredBlockState.get_edge_prob()", but in the example in the docs I'm seeing this eprob = u.ep.eprobprint("Posterior probability of edge (11, 36):", eprob[u.edge(11, 36)]) What's the difference? Btw, there appears to be a typo in the docs for MeasuredBlockState. The x_default in the call signature has a default value of 0, but in the explanation below it says 1. Thanks for your help, as always On Thu, Apr 2, 2020 at 3:57 AM Tiago de Paula Peixoto <tiago@skewed.de> wrote:
Am 02.04.20 um 02:07 schrieb Deklan Webster:
Saw you mentioning the latent Poisson model on Twitter. I skimmed through what I could understand of the paper.
Can it apply to directed graphs? I saw in the paper you were 'erasing' the multiedges back into a simple graph. Can you erase into a simple directed graph?
Yes.
Is it correct to say that this approach supplants degree-correction? And, for DC vs non-DC you had a section in the docs about selecting which one fits your network best given the entropy. Is there something analogous here? Or, do I just try it out and see the results?
It is orthogonal to degree correction; it can be applied with and without degree correction. The same model selection principles still apply.
In the paper you mentioned this can be applied to community detection. As a user, is this as simple as instantiatingLatentMultigraphBlockState and then everything else is pretty much the same: equilibrate with the new multiflip, etc?
Yes. There is even an example of this in the documentation.
On Twitter you mentioned the latent Poisson approach in relation to link prediction. Over on the other thread you just recommended I use `MeasuredBlockState.get_edge_prob`. What's the difference with `LatentMultigraphBlockStat.get_edge_prob`? Will the latter give better results? I see they're both subclasses of `UncertainBaseState`.
MeasuredBlockState is based on a latent Poisson multigraph, but it also includes a model of the noisy measurement. LatentMultigraphBlockState assumes there is no measurement error. If you want to do link prediction, you should use the former, not the latter.
Best, Tiago
-- Tiago de Paula Peixoto <tiago@skewed.de>
_______________________________________________ graph-tool mailing list graph-tool@skewed.de https://lists.skewed.de/mailman/listinfo/graph-tool