LBFGSBOptimizer#

class empulse.optimizers.LBFGSBOptimizer(max_iter=1000, tolerance=0.0001, max_line_search_steps=50, ftol_scale=64.0)[source]#

Limited-memory BFGS with box constraints (L-BFGS-B) via scipy.optimize.minimize.

This is the default optimizer for CSLogitClassifier. It is well-suited for smooth objectives and scales to thousands of features.

Parameters:
max_iterint, default=1000

Maximum number of L-BFGS-B iterations.

tolerancefloat, default=1e-4

Gradient infinity-norm convergence tolerance (gtol).

max_line_search_stepsint, default=50

Maximum number of line-search steps per iteration (maxls).

ftol_scalefloat, default=64.0

Function-value tolerance is set to ftol_scale * machine_epsilon.

Examples

from empulse.models import CSLogitClassifier
from empulse.optimizers import LBFGSBOptimizer

model = CSLogitClassifier(optimizer=LBFGSBOptimizer(max_iter=500, tolerance=1e-5))
__call__(objective, X, **kwargs)[source]#

Run L-BFGS-B optimisation.