You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
EnsembleOptimizer uses _drop_random_samples() and np.random.choice to determine which data/features are involved in each bag. When running experiments, you can create reproducible ensembles by setting numpy.random.seed. However, when reading experiments, its easy to overlook that this seed is actually used, because it mutates global state, a form of spooky action at a distance. Worse, if someone thinks that it isn't used, deleting np.random.seed(seed) won't cause errors.
Is your feature request related to a problem? Please describe.
EnsembleOptimizer
uses_drop_random_samples()
andnp.random.choice
to determine which data/features are involved in each bag. When running experiments, you can create reproducible ensembles by settingnumpy.random.seed
. However, when reading experiments, its easy to overlook that this seed is actually used, because it mutates global state, a form of spooky action at a distance. Worse, if someone thinks that it isn't used, deletingnp.random.seed(seed)
won't cause errors.The solution is to be explicit at least with setting the seed. Relevant Jax philosophy.
Describe the solution you'd like
EnsembleOptimizer
accepts arand_gen: np.random.Generator
object.Describe alternatives you've considered
EnsembleOptimizer
accepts aseed: int
object.The text was updated successfully, but these errors were encountered: