GeneticAlgorithmOptimizer#
- class empulse.optimizers.GeneticAlgorithmOptimizer(max_iter=1000, tolerance=0.0001, patience=250, bounds=(-5, 5), population_size=None, crossover_rate=0.8, mutation_rate=0.1, elitism=0.05, random_state=None, n_jobs=1, verbose=False)[source]#
Real-coded Genetic Algorithm (RGA) optimizer for logit models.
Uses
Generationunder the hood with patience-based early stopping. This is the default optimizer forProfLogitClassifier.The objective function is evaluated as a scalar (via
logit_loss) so that the GA can rank individuals without computing their gradients.- Parameters:
- max_iterint, default=1000
Maximum number of GA generations.
- tolerancefloat, default=1e-4
Relative improvement below which the counter towards patience is incremented.
- patienceint, default=250
Number of consecutive generations with improvement < tolerance before stopping.
- boundstuple of (float, float), default=(-5, 5)
Symmetric lower and upper bounds applied to every coefficient.
- population_sizeint or None, default=None
Number of individuals.
NoneusesGeneration’s default ofmax(10, 10 * n_features).- crossover_ratefloat, default=0.8
Crossover probability.
- mutation_ratefloat, default=0.1
Mutation probability.
- elitismfloat, default=0.05
Fraction of best individuals carried over unchanged each generation.
- random_stateint or None, default=None
Seed for reproducibility.
- n_jobsint, default=1
Number of parallel jobs for fitness evaluation.
- verbosebool, default=False
Print generation-level progress.
Examples
from empulse.models import ProfLogitClassifier from empulse.optimizers import GeneticAlgorithmOptimizer rga = GeneticAlgorithmOptimizer(max_iter=10, bounds=(-10, 10), population_size=30) model = ProfLogitClassifier(optimizer=rga)