gizai:ml/lbfgs
the L-BFGS optimizer.
import * as Lbfgs from "gizai:ml/lbfgs";Types
Problem
type Problem = { kind: string; x: Vec<f64>; n: i64; d: i64; y: Vec<f64>; k: i64; reg: f64; epsilon: f64; }logistic: binary log loss (y 0/1), w = d weights + intercept. softmax: k × (d + 1). huber: d weights, intercept, scale. reg: the L2 strength on the weights.
kind:stringx:Vec<f64>n:i64d:i64y:Vec<f64>k:i64reg:f64epsilon:f64
Functions
lbfgs
function lbfgs(p: Problem, w0: Vec<f64>, low: Vec<f64>, maxIter: i64, gtol: f64, ftol: f64): Vec<f64>L-BFGS (10 corrections) with a backtracking Armijo search; low bounds each variable from below (projected).
Effects: fail.
newtonLogistic
function newtonLogistic(p: Problem, maxIter: i64, gtol: f64, ftol: f64): Vec<f64>Logistic regression by Newton steps with a backtracking search: with few features the Hessian costs no more than the gradient, and the steps reach the minimum in a few passes, where L-BFGS on unscaled features stops far from it. Stops as scikit-learn's lbfgs: the largest gradient entry at most gtol, or a relative loss drop at most ftol.
Effects: fail.
lows
function lows(m: i64): Vec<f64>m lower bounds of minus infinity: no bound.
Effects: fail.