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
Thanks for developing this tool. It has been really helpful for my research. As I'm using the "greater_is_better" feature of the code, I detected something abnormal originated from "genetic.py".
(1) if isinstance(self, RegressorMixin):
# Find the best individual in the final generation
self._program = self._programs[-1][np.argmin(fitness)]
This is only True when the best program we are seeking is the one that has lowest fitness, which is not the case for "greater_is_better".
(2) Similarly
if isinstance(self, TransformerMixin):
# Find the best individuals in the final generation
fitness = np.array(fitness)
hall_of_fame = fitness.argsort()[:self.hall_of_fame]
This would select top several programs that have lowest fitness instead of the highest.
The text was updated successfully, but these errors were encountered:
Yep, looks like a rather glaring bug, thank you for reporting. Looks like #40 addresses your first point. The second one might be implemented in the same PR. I'll ask @eggachecat if they can expand the PR to cover this as well.
* fix issues with metric evaluation in transformer
* improve transformer selection algorithm to maintain fittest program
* update documentation for new updates
* update changelog with changes in random sampling
Hi Trevor,
Thanks for developing this tool. It has been really helpful for my research. As I'm using the "greater_is_better" feature of the code, I detected something abnormal originated from "genetic.py".
(1) if isinstance(self, RegressorMixin):
# Find the best individual in the final generation
self._program = self._programs[-1][np.argmin(fitness)]
This is only True when the best program we are seeking is the one that has lowest fitness, which is not the case for "greater_is_better".
(2) Similarly
if isinstance(self, TransformerMixin):
# Find the best individuals in the final generation
fitness = np.array(fitness)
hall_of_fame = fitness.argsort()[:self.hall_of_fame]
This would select top several programs that have lowest fitness instead of the highest.
The text was updated successfully, but these errors were encountered: