Source code for esmvaltool.diag_scripts.mlr.models.lasso_lars_cv
"""Lasso Regression model with built-in CV using LARS algorithm.
Use ``mlr_model_type: lasso_lars_cv`` to use this MLR model in the recipe.
"""
import logging
import os
from sklearn.linear_model import LassoLarsCV
from esmvaltool.diag_scripts.mlr.models import MLRModel
from esmvaltool.diag_scripts.mlr.models.linear_base import LinearModel
logger = logging.getLogger(os.path.basename(__file__))
[docs]
@MLRModel.register_mlr_model("lasso_lars_cv")
class LassoLarsCVModel(LinearModel):
"""Lasso Regression model with built-in CV using LARS algorithm."""
_CLF_TYPE = LassoLarsCV
[docs]
def fit(self):
"""Print final ``alpha`` after successful fitting."""
super().fit()
logger.info(
"Optimal alpha of Lasso model: α = %.5f",
self._clf.steps[-1][1].regressor_.alpha_,
)