public final function regress(Observations $observations) : array
{
$coefficients = array_fill(0, $observations->getFeatureCount(), 0.0);
do {
$gradient = $this->calculateGradient($observations, $coefficients);
$this->schedule->update($gradient);
$coefficients = $this->updateCoefficients($coefficients, $gradient);
} while (!$this->stoppingCriteria->converged($gradient, $coefficients));
return $coefficients;
}