On 17.11.2016 07:02, Peter Straka wrote:
Hello,
I am trying to add a more detailed level at the bottom of a nested blockmodel. Given a graph g, I run
c = gt.is_bipartite(g, True)[1] state = gt.minimize_nested_blockmodel_dl(g, deg_corr=True, layers=True, state_args=dict(ec=g.ep.visits, layers=False, pclabel=c), verbose=True)
to find a nestedBlockState 'state'. Then I run
state.duplicate_level(0) bstate = state.find_new_level(0, bisection_args={'verbose': True})
This seems to correctly invoke the bisection_minimize() method and runs for a while, then raises a ValueError: provided clabel is inconsistent with node partition.
The output is below. Where exactly is the inconsistency coming from?
It is totally wrong to do it like this. You are using low-level functions from NestedBlockState which are meant to be used in a very particular way from inside the minimize_nested_blockmodel_dl(). I don't think it is a good idea to modify an inference algorithm in arbitrary ways just to force it to give a specific result. -- Tiago de Paula Peixoto <tiago@skewed.de>