Skip to content

LassoCVModel

LassoCVModel

Lasso regression with cross-validated regularization using scikit-learn’s LassoCV.

Basic Usage

from epftoolbox2.models import LassoCVModel
model = LassoCVModel(
predictors=[
"load_actual",
"is_monday_d+{horizon}",
"is_tuesday_d+{horizon}",
"is_wednesday_d+{horizon}",
"is_thursday_d+{horizon}",
"is_friday_d+{horizon}",
"is_saturday_d+{horizon}",
"is_sunday_d+{horizon}",
"is_holiday_d+{horizon}",
"daylight_hours_d+{horizon}",
],
training_window=365,
cv=5,
name="LassoCV",
)

Parameters

ParameterTypeDefaultDescription
predictorsListRequiredPredictor specifications
training_windowint365Days of training data
cvint5Cross-validation folds
max_iterint10000Max optimization iterations
namestr"Model"Display name for reports

When to Use

  • Many predictors: Lasso performs automatic feature selection
  • Correlated features: Regularization handles multicollinearity
  • Preventing overfitting: L1 penalty shrinks coefficients

Example

from epftoolbox2.pipelines import ModelPipeline
from epftoolbox2.models import LassoCVModel
from epftoolbox2.evaluators import MAEEvaluator
from epftoolbox2.exporters import TerminalExporter
predictors = [
"load_actual",
"is_monday_d+{horizon}",
"is_tuesday_d+{horizon}",
"is_wednesday_d+{horizon}",
"is_thursday_d+{horizon}",
"is_friday_d+{horizon}",
"is_saturday_d+{horizon}",
"is_sunday_d+{horizon}",
"is_holiday_d+{horizon}",
"daylight_hours_d+{horizon}",
*[f"load_actual_h-{i}" for i in range(1, 169)],
]
pipeline = (
ModelPipeline()
.add_model(LassoCVModel(predictors=predictors, cv=5, name="LassoCV"))
.add_evaluator(MAEEvaluator())
.add_exporter(TerminalExporter())
)
report = pipeline.run(data=df, test_start="2024-02-01", test_end="2024-03-01")