public function gradient(array $coefficients, array $features, float $outcome) : array
{
$gradient = [];
$baseGradient = $this->gradient->gradient($coefficients, $features, $outcome);
for ($i = 0; $i < count($baseGradient); $i++) {
$penalty = $i || !$this->ignoreFirst ? $this->lambda * pow(abs($coefficients[$i]), $this->level - 1) : 0.0;
$gradient[] = $baseGradient[$i] + $penalty;
}
return $gradient;
}