Tied scores can happen with some data (e.g. discretizing semi-continuous
variables) and cause the final choice of contributing nodes to be
order-dependent. This order can have slight variations depending on the
number of threads with a dynamic schedule.
In the case of a tie, we need an order-independent test to choose a new top Z.
This commit implements a comparison between the Zs' entropies by computing
I(X;Z)+I(Y;Z), and another test that depends on the seeded RNG if those sums
are also equal.
Tied scores can happen with some data (e.g. discretizing semi-continuous variables) and cause the final choice of contributing nodes to be order-dependent. This order can have slight variations depending on the number of threads with a dynamic schedule.
In the case of a tie, we need an order-independent test to choose a new top Z. This commit implements a comparison between the Zs' entropies by computing I(X;Z)+I(Y;Z), and another test that depends on the seeded RNG if those sums are also equal.