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.eprob
print("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