LinearPrior

LinearPrior

The Linear prior.

A linear function of the inputs: f(x) = x·weights + intercept. Can be fitted to training data using least-squares (Rust uses SVD; JS uses normal equations via lstsqSolve — semantically equivalent, see PORT_SPEC §12.12).

Rust struct fields: weights: DVector (length = input dimension) intercept: f64

Constructor

new LinearPrior(weights, intercept)

Source:
Parameters:
Name Type Description
weights Array.<number>

length = input dimension

intercept number

Classes

LinearPrior

Members

intercept :number

Source:
Type:
  • number

weights :Array.<number>

Source:
Type:
  • Array.<number>

Methods

fit(inputs, outputs)

Description:
  • Fits the linear prior via least-squares.

    Matches Rust: insert a column of ones at index 0 → [1 | inputs], then solve [1|inputs]·w = outputs (SVD, threshold 0). The resulting w[0] is the intercept and w[1..] are the weights.

    JS: builds augmented matrix (m × d+1) with a leading ones column, delegates to lstsqSolve(augmented, outputs).

Source:
Parameters:
Name Type Description
inputs Array.<Array.<number>>

training inputs (m × d)

outputs Array.<number>

training outputs (m)

prior(inputs) → {Array.<number>}

Description:
  • Evaluates the linear prior for each row of inputs. Matches Rust prior(input) → input * self.weights + self.intercept where input is (n×d) and weights is (d×1), yielding (n×1).

Source:
Parameters:
Name Type Description
inputs Array.<Array.<number>>

one sample per row

Returns:

length = inputs.length

Type
Array.<number>

(static) default(inputDimension) → {LinearPrior}

Description:
  • Creates the default LinearPrior with all-zero weights and zero intercept. Matches Rust LinearPrior::default(input_dimension) → Self { weights: DVector::zeros(input_dimension), intercept: 0f64 }.

Source:
Parameters:
Name Type Description
inputDimension number
Returns:
Type
LinearPrior