verde.base.least_squares

verde.base.least_squares(jacobian, data, weights, damping=None)[source]

Solve a weighted least-squares problem with optional damping regularization.

Scales the Jacobian matrix so that each column has unit variance. This helps keep the regularization parameter in a sensible range. The scaling is undone before returning the estimated parameters so that scaling isn’t required for predictions. Doesn’t normalize the column means because that operation can’t be undone.

Parameters:
jacobian : 2d-array

The Jacobian/sensitivity/feature matrix.

data : 1d-array

The data array. Must be a single 1D array. If fitting multiple data components, stack the arrays and the Jacobian matrices.

weights : None or 1d-array

The data weights. Like the data, this must also be a 1D array. Stack the weights in the same order as the data. Use weights=None to fit without weights.

damping : None or float

The positive damping (Tikhonov 0th order) regularization parameter. If damping=None, will use a regular least-squares fit.

Returns:
parameters : 1d-array

The estimated 1D array of parameters that fit the data.