How to see the relations between two groups of blocks in a bipartite network?
Hi, Sorry if I ask basic questions but I'm new in this. I have a bipartite network, with two types of nodes with no connections between the nodes of the same type, only between different types. I have run minimize_blockmodel_dl y minimize_nested_blockmodel_dl with different options but I always get separated blocks for each type of node: some blocks only with nodes of one type and the rest only with nodes of the other type. But I am really interested in the relation between this two groups of blocks. Any idea about how could I get that? Thank you very much. Best regards, Andrea
On 22.04.2016 15:45, Andrea Briega wrote:
I have a bipartite network, with two types of nodes with no connections between the nodes of the same type, only between different types. I have run minimize_blockmodel_dl y minimize_nested_blockmodel_dl with different options but I always get separated blocks for each type of node: some blocks only with nodes of one type and the rest only with nodes of the other type. But I am really interested in the relation between this two groups of blocks. Any idea about how could I get that?
What these functions do is to fit a generative model --- the stochastic block model --- to your data. This model divides the network into equivalence classes, such that nodes in the same class have similar connections to the rest of the network. That is why it puts nodes of both partitions of a bipartite network into different groups, i.e. they are not seminar with respect to their connections. The fact that the model is capable of recognizing these types of equivalence classes is considered a feature, since it reproduces what in fact you have in your data. So, I'm not sure exactly what you want to achieve. If an algorithm places the nodes of the different partitions in the same group, it will be hiding this information from you. What else will it be hiding? How do you define what should be found, and what shouldn't? In order to do this correctly, you would need to formalize better what patterns you are searching for, and encode them in a different generative model, write an inference algorithm, etc, Now, note that the stochastic blockmodel _does_ also give you the relationship between the partitions, via the connections between them. So maybe, you can clarify a little bit more what precisely you are searching for? Best, Tiago -- Tiago de Paula Peixoto <tiago@skewed.de>
Thank you very much for your detailed answer, it has been really helpful. The point is that I want to know how the relations are beween the two types of nodes of my network and with both classifications. Other algorithms, such as map equation, classify both types of nodes in the same groups so I see this relations directly, althought as you say by this way some information is hidden. In this sense I prefer graphtool, but I didn't know how to get this relation. Now I see I can get the partitions network from the BlockState object, I didn't know! (as I said, I am new in this, and in python too). I think it will be enough with this output. Thank you again, Andrea 2016-04-22 15:45 GMT+02:00 Andrea Briega <annbrial@gmail.com>:
Hi,
Sorry if I ask basic questions but I'm new in this. I have a bipartite network, with two types of nodes with no connections between the nodes of the same type, only between different types. I have run minimize_blockmodel_dl y minimize_nested_blockmodel_dl with different options but I always get separated blocks for each type of node: some blocks only with nodes of one type and the rest only with nodes of the other type. But I am really interested in the relation between this two groups of blocks. Any idea about how could I get that? Thank you very much.
Best regards,
Andrea
participants (2)
-
Andrea Briega -
Tiago de Paula Peixoto