Hello Tiago and community,

I have a network that I'd like to infer a hierarchical SBM from, but it has

weighted edges.

After reading the weighted SBM paper [1] and looking at the graph-tool

docs, I think I might be able to use `*minimize_nested_blockmodel_dl*` and

pass the `*BlockState*` `*eweight*` argument via `*state_args*`. The

weights are discrete and non-negative, so maybe I also need to specify "

discrete-geometric" via `*rec_types`*. The edge weights could also be seen

as multiple edges in a multigraph.

1]: https://arxiv.org/pdf/1708.01432.pdf

After searching through old mailing list posts, here is my current attempt

for the weighted case:

```
g = Graph()
# Add vertices here
# Add edges here
edge_weights = g.new_edge_property('int')
# Specify edge weights here
state = minimize_nested_blockmodel_dl(g,
state_args=dict(eweight=edge_weights,
rec_types=['discrete-geometric']) )
```

Am I on the right track? And would it be better to specify the edge

weights via the `*BlockState*` `*recs*` parameter instead of using `

*eweight*`?

Thank you,

Alexander

Alexander T. J. Barron

https://cogentmentat.github.io/academic/

attachment.html (2.24 KB)