pyVolutionary 2.5.0__tar.gz → 2.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/PKG-INFO +7 -8
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/README.md +6 -7
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyproject.toml +1 -1
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/__init__.py +5 -4
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/abstract.py +33 -12
- pyvolutionary-2.5.0/pyvolutionary/gridsearchcv.py → pyvolutionary-2.5.1/pyvolutionary/hypertuner.py +4 -5
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/models.py +12 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/african_vulture/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/african_vulture/african_vulture_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/african_vulture/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ant_colony/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ant_colony/ant_colony_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ant_colony/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ant_lion/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ant_lion/ant_lion_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ant_lion/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/aquila/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/aquila/aquila_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/aquila/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/archimede/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/archimede/archimede_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/archimede/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/bacterial_foraging/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/bacterial_foraging/bacterial_foraging_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/bacterial_foraging/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/bat/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/bat/bat_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/bat/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/battle_royale/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/battle_royale/battle_royale_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/battle_royale/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/bee_colony/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/bee_colony/bee_colony_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/bee_colony/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/biogeography_based/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/biogeography_based/biogeography_based_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/biogeography_based/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/brain_storm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/brain_storm/brain_storm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/brain_storm/improved_brain_storm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/brain_storm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/brown_bear/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/brown_bear/brown_bear_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/brown_bear/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/camel_caravan/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/camel_caravan/camel_caravan_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/camel_caravan/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/cat_swarm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/cat_swarm/cat_swarm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/cat_swarm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/chaos_game/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/chaos_game/chaos_game_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/chaos_game/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/chernobyl_disaster/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/chernobyl_disaster/chernobyl_disaster_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/chernobyl_disaster/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coati/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coati/coati_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coati/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coral_reef/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coral_reef/coral_reef_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coral_reef/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coronavirus_herd_immunity/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coronavirus_herd_immunity/coronavirus_herd_immunity_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coronavirus_herd_immunity/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coyotes/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coyotes/coyotes_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coyotes/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/cuckoo_search/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/cuckoo_search/cuckoo_search_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/cuckoo_search/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/dragonfly/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/dragonfly/dragonfly_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/dragonfly/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/dwarf_mongoose/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/dwarf_mongoose/dwarf_mongoose_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/dwarf_mongoose/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/earthworms/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/earthworms/earthworms_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/earthworms/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/egret_swarm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/egret_swarm/egret_swarm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/egret_swarm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/electromagnetic_field/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/electromagnetic_field/electromagnetic_field_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/electromagnetic_field/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/elephant_herd/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/elephant_herd/elephant_herd_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/elephant_herd/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/energy_valley/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/energy_valley/energy_valley_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/energy_valley/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/enums.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ficks_law/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ficks_law/ficks_law_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ficks_law/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/firefly_swarm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/firefly_swarm/firefly_swarm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/firefly_swarm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/firehawk/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/firehawk/firehawk_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/firehawk/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/fireworks/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/fireworks/fireworks_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/fireworks/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/fish_school_search/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/fish_school_search/fish_school_search_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/fish_school_search/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/flower_pollination_algorithm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/flower_pollination_algorithm/flower_pollination_algorithm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/flower_pollination_algorithm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/forensic_based_investigation/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/forensic_based_investigation/forensic_based_investigation_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/forensic_based_investigation/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/forest_algorithm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/forest_algorithm/forest_optimization_algorithm.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/forest_algorithm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/fox/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/fox/fox_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/fox/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/gaining_sharing_knowledge_algorithm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/gaining_sharing_knowledge_algorithm/gaining_sharing_knowledge_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/gaining_sharing_knowledge_algorithm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/genetic_algorithm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/genetic_algorithm/classes.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/genetic_algorithm/genetic_algorithm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/genetic_algorithm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/germinal_center/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/germinal_center/germinal_center_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/germinal_center/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/giant_trevally/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/giant_trevally/giant_trevally_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/giant_trevally/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/giza_pyramid_construction/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/giza_pyramid_construction/giza_pyramid_construction_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/giza_pyramid_construction/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/golden_jackal/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/golden_jackal/golden_jackal_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/golden_jackal/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/grasshopper/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/grasshopper/grasshopper_optimization_algorithm.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/grasshopper/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/grey_wolf/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/grey_wolf/grey_wolf_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/grey_wolf/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/harmony_search/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/harmony_search/harmony_search_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/harmony_search/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/heap_based/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/heap_based/heap_based_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/heap_based/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/helpers.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/henry_gas_solubility/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/henry_gas_solubility/henry_gas_solubility_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/henry_gas_solubility/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/hunger_games_search/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/hunger_games_search/hunger_games_search_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/hunger_games_search/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/imperialist_competitive/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/imperialist_competitive/classes.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/imperialist_competitive/imperialist_competitive_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/imperialist_competitive/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/invasive_weed/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/invasive_weed/invasive_weed_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/invasive_weed/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/krill_herd/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/krill_herd/krill_herd_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/krill_herd/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/levi_jaya_swarm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/levi_jaya_swarm/levy_flight_jaya_swarm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/levi_jaya_swarm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/marine_predators/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/marine_predators/marine_predators_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/marine_predators/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/monarch_butterfly/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/monarch_butterfly/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/monarch_butterfly/monarch_butterfly_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/moth_flame/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/moth_flame/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/moth_flame/moth_flame_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/mountain_gazelle/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/mountain_gazelle/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/mountain_gazelle/mountain_gazelle_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/multi_verse/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/multi_verse/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/multi_verse/multi_verse_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/multitask.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/nuclear_reaction/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/nuclear_reaction/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/nuclear_reaction/nuclear_reaction_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/osprey/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/osprey/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/osprey/osprey_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/particle_swarm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/particle_swarm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/particle_swarm/particle_swarm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/pathfinder_algorithm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/pathfinder_algorithm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/pathfinder_algorithm/pathfinder_algorithm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/pelican/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/pelican/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/pelican/pelican_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/runge_kutta/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/runge_kutta/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/runge_kutta/runge_kutta_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/salp_swarm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/salp_swarm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/salp_swarm/salp_swarm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/seagull/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/seagull/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/seagull/seagull_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/serval/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/serval/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/serval/serval_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/siberian_tiger/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/siberian_tiger/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/siberian_tiger/siberian_tiger_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/sine_cosine_algorithm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/sine_cosine_algorithm/classes.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/sine_cosine_algorithm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/sine_cosine_algorithm/qle_sine_cosine_algorithm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/sine_cosine_algorithm/sine_cosine_algorithm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/spotted_hyena/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/spotted_hyena/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/spotted_hyena/spotted_hyena_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/success_history_intelligent/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/success_history_intelligent/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/success_history_intelligent/success_history_intelligent_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/swarm_hill_climbing/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/swarm_hill_climbing/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/swarm_hill_climbing/swarm_hill_climbing_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/tasmanian_devil/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/tasmanian_devil/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/tasmanian_devil/tasmanian_devil_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/tuna_swarm/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/tuna_swarm/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/tuna_swarm/tuna_swarm_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/utils.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/virus_colony_search/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/virus_colony_search/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/virus_colony_search/virus_colony_search_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/walrus/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/walrus/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/walrus/walrus_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/war_strategy/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/war_strategy/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/war_strategy/war_strategy_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/water_cycle/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/water_cycle/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/water_cycle/water_cycle_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/whales/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/whales/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/whales/whales_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/wildebeest_herd/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/wildebeest_herd/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/wildebeest_herd/wildebeest_herd_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/wind_driven/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/wind_driven/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/wind_driven/wind_driven_optimization.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/zebra/__init__.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/zebra/models.py +0 -0
- {pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/zebra/zebra_optimization.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyVolutionary
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.1
|
|
4
4
|
Summary: pyVolutionary is a package collecting metaheuristic algorithms, available for free usage and able to solve a wide range of optimization problems.
|
|
5
5
|
Home-page: https://github.com/matteocacciola/pyvolutionary
|
|
6
6
|
License: MIT
|
|
@@ -516,15 +516,15 @@ Once you created your new classes, you can run the algorithm by calling the `opt
|
|
|
516
516
|
## Utilities
|
|
517
517
|
**pyVolutionary** provides a set of utilities to facilitate the use of the library.
|
|
518
518
|
|
|
519
|
-
###
|
|
520
|
-
**pyVolutionary** provides a `
|
|
521
|
-
the
|
|
522
|
-
|
|
519
|
+
### HyperTuner Hyper-parameter tuning
|
|
520
|
+
**pyVolutionary** provides a `HyperTuner` class to perform hyperparameter tuning of a model, by means of the algorithms
|
|
521
|
+
implemented in the library. The class can be used to replace the `GridSearchCV` of
|
|
522
|
+
[scikit-learn](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html):
|
|
523
523
|
|
|
524
524
|
```python
|
|
525
525
|
from opfunu.cec_based.cec2017 import F52017
|
|
526
526
|
|
|
527
|
-
from pyvolutionary import ContinuousMultiVariable, Task, BiogeographyBasedOptimization,
|
|
527
|
+
from pyvolutionary import ContinuousMultiVariable, Task, BiogeographyBasedOptimization, HyperTuner
|
|
528
528
|
|
|
529
529
|
f1 = F52017(30, f_bias=0)
|
|
530
530
|
|
|
@@ -547,9 +547,8 @@ params_bbo_grid = {
|
|
|
547
547
|
"p_m": [0.01, 0.02, 0.05]
|
|
548
548
|
}
|
|
549
549
|
|
|
550
|
-
|
|
551
550
|
model = BiogeographyBasedOptimization()
|
|
552
|
-
tuner =
|
|
551
|
+
tuner = HyperTuner(model, params_bbo_grid)
|
|
553
552
|
|
|
554
553
|
tuner.execute(task=task)
|
|
555
554
|
|
|
@@ -493,15 +493,15 @@ Once you created your new classes, you can run the algorithm by calling the `opt
|
|
|
493
493
|
## Utilities
|
|
494
494
|
**pyVolutionary** provides a set of utilities to facilitate the use of the library.
|
|
495
495
|
|
|
496
|
-
###
|
|
497
|
-
**pyVolutionary** provides a `
|
|
498
|
-
the
|
|
499
|
-
|
|
496
|
+
### HyperTuner Hyper-parameter tuning
|
|
497
|
+
**pyVolutionary** provides a `HyperTuner` class to perform hyperparameter tuning of a model, by means of the algorithms
|
|
498
|
+
implemented in the library. The class can be used to replace the `GridSearchCV` of
|
|
499
|
+
[scikit-learn](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html):
|
|
500
500
|
|
|
501
501
|
```python
|
|
502
502
|
from opfunu.cec_based.cec2017 import F52017
|
|
503
503
|
|
|
504
|
-
from pyvolutionary import ContinuousMultiVariable, Task, BiogeographyBasedOptimization,
|
|
504
|
+
from pyvolutionary import ContinuousMultiVariable, Task, BiogeographyBasedOptimization, HyperTuner
|
|
505
505
|
|
|
506
506
|
f1 = F52017(30, f_bias=0)
|
|
507
507
|
|
|
@@ -524,9 +524,8 @@ params_bbo_grid = {
|
|
|
524
524
|
"p_m": [0.01, 0.02, 0.05]
|
|
525
525
|
}
|
|
526
526
|
|
|
527
|
-
|
|
528
527
|
model = BiogeographyBasedOptimization()
|
|
529
|
-
tuner =
|
|
528
|
+
tuner = HyperTuner(model, params_bbo_grid)
|
|
530
529
|
|
|
531
530
|
tuner.execute(task=task)
|
|
532
531
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "pyVolutionary"
|
|
3
|
-
version = "2.5.
|
|
3
|
+
version = "2.5.1"
|
|
4
4
|
description = "pyVolutionary is a package collecting metaheuristic algorithms, available for free usage and able to solve a wide range of optimization problems."
|
|
5
5
|
authors = ["Matteo Cacciola <matteo.cacciola@gmail.com>"]
|
|
6
6
|
license = "MIT"
|
|
@@ -80,21 +80,22 @@ from .whales import *
|
|
|
80
80
|
from .wildebeest_herd import *
|
|
81
81
|
from .wind_driven import *
|
|
82
82
|
from .zebra import *
|
|
83
|
-
from .
|
|
83
|
+
from .hypertuner import HyperTuner
|
|
84
84
|
from .enums import TaskType
|
|
85
85
|
from .multitask import Multitask
|
|
86
86
|
from .models import (
|
|
87
|
+
Agent,
|
|
88
|
+
EarlyStopping,
|
|
87
89
|
OptimizationResult,
|
|
88
90
|
Population,
|
|
89
|
-
Agent,
|
|
90
91
|
Task,
|
|
92
|
+
BinaryVariable,
|
|
91
93
|
ContinuousVariable,
|
|
92
94
|
ContinuousMultiVariable,
|
|
93
95
|
DiscreteVariable,
|
|
94
96
|
DiscreteMultiVariable,
|
|
95
|
-
PermutationVariable,
|
|
96
97
|
MultiObjectiveVariable,
|
|
97
|
-
|
|
98
|
+
PermutationVariable,
|
|
98
99
|
)
|
|
99
100
|
from .helpers import best_agent, worst_agent, best_agents, worst_agents, special_agents, get_levy_flight_step
|
|
100
101
|
from .utils import agent_trend, best_agent_trend, agent_position, best_agent_position
|
|
@@ -36,6 +36,8 @@ class OptimizationAbstract(ABC, Generic[T]):
|
|
|
36
36
|
self._best_agent: T | None = None
|
|
37
37
|
self._worst_agent: T | None = None
|
|
38
38
|
self._current_cycle = 1
|
|
39
|
+
self._errors = []
|
|
40
|
+
self._error_diffs = []
|
|
39
41
|
|
|
40
42
|
@abstractmethod
|
|
41
43
|
def optimization_step(self):
|
|
@@ -228,7 +230,6 @@ class OptimizationAbstract(ABC, Generic[T]):
|
|
|
228
230
|
|
|
229
231
|
self.after_initialization()
|
|
230
232
|
|
|
231
|
-
errors: list[float] = []
|
|
232
233
|
while True:
|
|
233
234
|
self.optimization_step()
|
|
234
235
|
# append the current population to the evolution, being sure that costs and fitness are updated
|
|
@@ -237,8 +238,7 @@ class OptimizationAbstract(ABC, Generic[T]):
|
|
|
237
238
|
(self._best_agent, ), (self._worst_agent, ) = special_agents(self._population, n_best=1, n_worst=1)
|
|
238
239
|
|
|
239
240
|
# stop when the error is below the error criteria or when the maximum number of cycles is reached
|
|
240
|
-
error, fitness, has_to_stop = self.
|
|
241
|
-
errors.append(error)
|
|
241
|
+
error, fitness, has_to_stop = self.__error_check__()
|
|
242
242
|
if self._debug:
|
|
243
243
|
print(f"Cycle {self._current_cycle} - Best position {self._best_agent.position}, "
|
|
244
244
|
f"cost {self._best_agent.cost if task.minmax == TaskType.MIN else -self._best_agent.cost} - "
|
|
@@ -253,10 +253,10 @@ class OptimizationAbstract(ABC, Generic[T]):
|
|
|
253
253
|
f"Error criteria reached - Fitness error: {error}")
|
|
254
254
|
|
|
255
255
|
return OptimizationResult(
|
|
256
|
-
evolution=evolution, rates=
|
|
256
|
+
evolution=evolution, rates=self._errors, best_solution=self._best_agent, task_type=task.minmax
|
|
257
257
|
)
|
|
258
258
|
|
|
259
|
-
def
|
|
259
|
+
def __error_check__(self) -> tuple[float, float, bool]:
|
|
260
260
|
"""
|
|
261
261
|
Check whether the optimization algorithm has to stop or not based on the error criteria and the current cycle.
|
|
262
262
|
:return: a tuple containing the current error, the average fitness and a boolean indicating whether the
|
|
@@ -264,15 +264,36 @@ class OptimizationAbstract(ABC, Generic[T]):
|
|
|
264
264
|
:rtype: tuple[float, float, bool]
|
|
265
265
|
"""
|
|
266
266
|
# Get the optimal population
|
|
267
|
-
fitness_error = self._config.fitness_error
|
|
268
267
|
avg_fit = average_fitness(self._population)
|
|
269
|
-
|
|
268
|
+
current_error = abs(1 - avg_fit)
|
|
269
|
+
previous_error = self._errors[-1] if len(self._errors) > 0 else 0
|
|
270
|
+
|
|
271
|
+
# Append the current error to the list of errors
|
|
272
|
+
self._errors.append(current_error)
|
|
273
|
+
|
|
274
|
+
# Append the difference between the current error and the previous one to the list of error differences
|
|
275
|
+
self._error_diffs.append(current_error - previous_error)
|
|
276
|
+
|
|
277
|
+
return current_error, avg_fit, self.__should_stop__(current_error)
|
|
278
|
+
|
|
279
|
+
def __should_stop__(self, current_error: float) -> bool:
|
|
280
|
+
fitness_error = self._config.fitness_error
|
|
270
281
|
max_cycles = self._config.max_cycles
|
|
282
|
+
early_stopping = self._config.early_stopping
|
|
271
283
|
|
|
272
|
-
|
|
284
|
+
cycle = self._current_cycle
|
|
285
|
+
|
|
286
|
+
# Stop when the maximum number of cycles is reached
|
|
287
|
+
has_to_stop = cycle >= max_cycles
|
|
288
|
+
|
|
289
|
+
# Evaluate the early stopping criteria
|
|
290
|
+
if early_stopping is not None:
|
|
291
|
+
min_delta, patience = early_stopping.min_delta, early_stopping.patience
|
|
292
|
+
print(min_delta, patience, self._error_diffs[-patience:])
|
|
293
|
+
has_to_stop |= all([diff < 0 and abs(diff) < min_delta for diff in self._error_diffs[-patience:]])
|
|
273
294
|
|
|
274
|
-
# Stop when the error is below the error criteria
|
|
275
|
-
if fitness_error is None:
|
|
276
|
-
|
|
295
|
+
# Stop when the error is below the error criteria
|
|
296
|
+
if fitness_error is not None:
|
|
297
|
+
has_to_stop |= current_error <= fitness_error
|
|
277
298
|
|
|
278
|
-
return
|
|
299
|
+
return has_to_stop
|
pyvolutionary-2.5.0/pyvolutionary/gridsearchcv.py → pyvolutionary-2.5.1/pyvolutionary/hypertuner.py
RENAMED
|
@@ -25,7 +25,7 @@ class ParameterGrid:
|
|
|
25
25
|
|
|
26
26
|
Parameters
|
|
27
27
|
----------
|
|
28
|
-
param_grid
|
|
28
|
+
param_grid: dict of str to sequence, or sequence of such
|
|
29
29
|
The parameter grid to explore, as a dictionary mapping estimator
|
|
30
30
|
parameters to sequences of allowed values.
|
|
31
31
|
|
|
@@ -37,8 +37,7 @@ class ParameterGrid:
|
|
|
37
37
|
|
|
38
38
|
See Also
|
|
39
39
|
--------
|
|
40
|
-
|
|
41
|
-
parameter search.
|
|
40
|
+
HyperTuner: Uses :class:`ParameterGrid` to perform a full parallelized parameter search.
|
|
42
41
|
"""
|
|
43
42
|
|
|
44
43
|
def __init__(self, param_grid):
|
|
@@ -148,9 +147,9 @@ class ParameterGrid:
|
|
|
148
147
|
raise IndexError("ParameterGrid index out of range")
|
|
149
148
|
|
|
150
149
|
|
|
151
|
-
class
|
|
150
|
+
class HyperTuner:
|
|
152
151
|
"""
|
|
153
|
-
|
|
152
|
+
HyperTuner utility.
|
|
154
153
|
|
|
155
154
|
This is a feature that enables the tuning of hyperparameters for an algorithm.
|
|
156
155
|
It also supports exporting results in various formats, such as Pandas DataFrame, JSON, and CSV.
|
|
@@ -68,10 +68,22 @@ class LabelEncoder:
|
|
|
68
68
|
return [self.__unique_labels__[i] if i in self.__label_to_index__.values() else "unknown" for i in y]
|
|
69
69
|
|
|
70
70
|
|
|
71
|
+
class EarlyStopping(BaseModel):
|
|
72
|
+
patience: int | None = 1
|
|
73
|
+
min_delta: float | None = 1e-4
|
|
74
|
+
|
|
75
|
+
@field_validator("patience")
|
|
76
|
+
def validate_patience(cls, v):
|
|
77
|
+
if v is not None and v < 1:
|
|
78
|
+
raise ValueError(f"\"patience\" must be greater than or equal to one. Got {v}")
|
|
79
|
+
return v
|
|
80
|
+
|
|
81
|
+
|
|
71
82
|
class BaseOptimizationConfig(BaseModel):
|
|
72
83
|
population_size: int
|
|
73
84
|
fitness_error: float | None = 0.1
|
|
74
85
|
max_cycles: int
|
|
86
|
+
early_stopping: EarlyStopping | None = None
|
|
75
87
|
|
|
76
88
|
|
|
77
89
|
class Agent(BaseModel):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ant_colony/ant_colony_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/archimede/archimede_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/bee_colony/bee_colony_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/brain_storm/brain_storm_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/brown_bear/brown_bear_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/cat_swarm/cat_swarm_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/chaos_game/chaos_game_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coral_reef/coral_reef_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coronavirus_herd_immunity/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/coronavirus_herd_immunity/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/dragonfly/dragonfly_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/earthworms/earthworms_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/egret_swarm/egret_swarm_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/ficks_law/ficks_law_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/fireworks/fireworks_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/flower_pollination_algorithm/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/flower_pollination_algorithm/models.py
RENAMED
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/forensic_based_investigation/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/forensic_based_investigation/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/giza_pyramid_construction/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/giza_pyramid_construction/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyvolutionary-2.5.0 → pyvolutionary-2.5.1}/pyvolutionary/grey_wolf/grey_wolf_optimization.py
RENAMED
|
File without changes
|
|
File without changes
|