Source code for tempor.metrics.prediction.one_off.plugin_builtin_regression
"""Module with built-in metric plugins for the category: prediction -> one-off -> regression."""
from typing import Any , cast
import numpy as np
import sklearn.metrics
from tempor.core import plugins
from tempor.metrics import metric , metric_typing
[docs] @plugins . register_plugin ( name = "mse" , category = "prediction.one_off.regression" , plugin_type = "metric" )
class MseOneOffRegressionMetric ( metric . OneOffRegressionMetric ):
"""Mean squared error regression metric"""
@property
def direction ( self ) -> metric_typing . MetricDirection : # noqa: D102
return "minimize"
def _evaluate ( self , actual : np . ndarray , predicted : np . ndarray , * args : Any , ** kwargs : Any ) -> float :
return cast (
float ,
sklearn . metrics . mean_squared_error ( actual , predicted ),
)
[docs] @plugins . register_plugin ( name = "mae" , category = "prediction.one_off.regression" , plugin_type = "metric" )
class MaeOneOffRegressionMetric ( metric . OneOffRegressionMetric ):
"""Mean absolute error regression metric"""
@property
def direction ( self ) -> metric_typing . MetricDirection : # noqa: D102
return "minimize"
def _evaluate ( self , actual : np . ndarray , predicted : np . ndarray , * args : Any , ** kwargs : Any ) -> float :
return cast (
float ,
sklearn . metrics . mean_absolute_error ( actual , predicted ),
)
[docs] @plugins . register_plugin ( name = "r2" , category = "prediction.one_off.regression" , plugin_type = "metric" )
class R2OneOffRegressionMetric ( metric . OneOffRegressionMetric ):
"""R^2 (coefficient of determination) score regression metric"""
@property
def direction ( self ) -> metric_typing . MetricDirection : # noqa: D102
return "maximize"
def _evaluate ( self , actual : np . ndarray , predicted : np . ndarray , * args : Any , ** kwargs : Any ) -> float :
return cast (
float ,
sklearn . metrics . r2_score ( actual , predicted ),
)