Skip to content

Conversation

@gbrunin
Copy link
Collaborator

@gbrunin gbrunin commented Jul 22, 2025

Hi,

For quite some time now I have faced the issue that feature selection gets stuck around the end of the process because some MI computations fail silently and are not handled properly by pool.imap_unordered. This could be somehow mitigated by putting everything into a main() method but in some cases it remained unavoidable, making life more difficult than it should be.

In this PR, I suggest to use concurrent.futures to handle the parallelization in get_cross_nmi. This allows to handle edge cases more cleanly. Here, when the MI computation fails, I set the mutual_information to 0.

I have not modified anything else than the cross-MI computation. Maybe this switch from multiprocessing to concurrent should be propagated to other parts of the code? Let me know what you think.

Tests are passing without modification.

Cheers,
Guillaume

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant