SimplexFrankWolfe

SimplexFrankWolfe()

Frank-Wolfe optimizer specialized to simplex constraints.

Use this optimizer when parameters must be nonnegative and sum to one, for example in balancing-weight or synthetic-control style problems.

Attributes

Name Description
maxIterations Maximum number of optimizer iterations.
tolerance Optimization tolerance.

Methods

Name Description
optimize optimize(self: pyensmallen._pyensmallen.SimplexFrankWolfe, objective: collections.abc.Callable[[typing.Annotated[numpy.typing.ArrayLike, numpy.float64], typing.Annotated[numpy.typing.ArrayLike, numpy.float64]], float], initial_point: typing.Annotated[numpy.typing.ArrayLike, numpy.float64]) -> numpy.typing.NDArray[numpy.float64]

optimize

SimplexFrankWolfe.optimize()

optimize(self: pyensmallen._pyensmallen.SimplexFrankWolfe, objective: collections.abc.Callable[[typing.Annotated[numpy.typing.ArrayLike, numpy.float64], typing.Annotated[numpy.typing.ArrayLike, numpy.float64]], float], initial_point: typing.Annotated[numpy.typing.ArrayLike, numpy.float64]) -> numpy.typing.NDArray[numpy.float64]

Optimize an objective from the provided starting point.

Parameters

Name Type Description Default
objective callable Callable with signature objective(params, gradient). The callable should write the gradient in place and return the scalar objective. required
initial_point ndarray Initial parameter vector. required

Returns

Name Type Description
ndarray Optimized parameter vector.