Documentation for Metrics¶
 Common metrics to assess performance on NARX models.
 explained_variance_score(y, yhat) ¶
 Calculate the Explained Variance Score.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float  |    EVS output is non-negative values. Becoming 1.0 means your model outputs are exactly matched by true target values. Lower values means worse results.  |  
References
- Wikipedia entry on the Explained Variance https://en.wikipedia.org/wiki/Explained_variation
 
Examples:
Source code in sysidentpy/metrics/_regression.py
  forecast_error(y, yhat) ¶
 Calculate the forecast error in a regression model.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   ndarray of floats  |    The difference between the true target values and the predicted or forecast value in regression or any other phenomenon.  |  
References
- Wikipedia entry on the Forecast error https://en.wikipedia.org/wiki/Forecast_error
 
Examples:
Source code in sysidentpy/metrics/_regression.py
  mean_absolute_error(y, yhat) ¶
 Calculate the Mean absolute error.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float or ndarray of floats  |    MAE output is non-negative values. Becoming 0.0 means your model outputs are exactly matched by true target values.  |  
References
- Wikipedia entry on the Mean absolute error https://en.wikipedia.org/wiki/Mean_absolute_error
 
Examples:
Source code in sysidentpy/metrics/_regression.py
  mean_forecast_error(y, yhat) ¶
 Calculate the mean of forecast error of a regression model.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float  |    The mean value of the difference between the true target values and the predicted or forecast value in regression or any other phenomenon.  |  
References
- Wikipedia entry on the Forecast error https://en.wikipedia.org/wiki/Forecast_error
 
Examples:
Source code in sysidentpy/metrics/_regression.py
  mean_squared_error(y, yhat) ¶
 Calculate the Mean Squared Error.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float  |    MSE output is non-negative values. Becoming 0.0 means your model outputs are exactly matched by true target values.  |  
References
- Wikipedia entry on the Mean Squared Error https://en.wikipedia.org/wiki/Mean_squared_error
 
Examples:
Source code in sysidentpy/metrics/_regression.py
  mean_squared_log_error(y, yhat) ¶
 Calculate the Mean Squared Logarithmic Error.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float  |    MSLE output is non-negative values. Becoming 0.0 means your model outputs are exactly matched by true target values.  |  
Examples:
Source code in sysidentpy/metrics/_regression.py
  median_absolute_error(y, yhat) ¶
 Calculate the Median Absolute Error.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float  |    MdAE output is non-negative values. Becoming 0.0 means your model outputs are exactly matched by true target values.  |  
References
- Wikipedia entry on the Median absolute deviation https://en.wikipedia.org/wiki/Median_absolute_deviation
 
Examples:
Source code in sysidentpy/metrics/_regression.py
  normalized_root_mean_squared_error(y, yhat) ¶
 Calculate the normalized Root Mean Squared Error.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float  |    nRMSE output is non-negative values. Becoming 0.0 means your model outputs are exactly matched by true target values.  |  
References
- Wikipedia entry on the normalized Root Mean Squared Error https://en.wikipedia.org/wiki/Root-mean-square_deviation
 
Examples:
>>> y = [3, -0.5, 2, 7]
>>> yhat = [2.5, 0.0, 2, 8]
>>> normalized_root_mean_squared_error(y, yhat)
0.081
Source code in sysidentpy/metrics/_regression.py
  r2_score(y, yhat) ¶
 Calculate the R2 score. Based on sklearn solution.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float  |    R2 output can be non-negative values or negative value. Becoming 1.0 means your model outputs are exactly matched by true target values. Lower values means worse results.  |  
Notes
This is not a symmetric function.
References
- Wikipedia entry on the Coefficient of determination https://en.wikipedia.org/wiki/Coefficient_of_determination
 
Examples:
Source code in sysidentpy/metrics/_regression.py
  root_mean_squared_error(y, yhat) ¶
 Calculate the Root Mean Squared Error.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float  |    RMSE output is non-negative values. Becoming 0.0 means your model outputs are exactly matched by true target values.  |  
References
- Wikipedia entry on the Root Mean Squared Error https://en.wikipedia.org/wiki/Root-mean-square_deviation
 
Examples:
Source code in sysidentpy/metrics/_regression.py
  root_relative_squared_error(y, yhat) ¶
 Calculate the Root Relative Mean Squared Error.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float  |    RRSE output is non-negative values. Becoming 0.0 means your model outputs are exactly matched by true target values.  |  
Examples:
>>> y = [3, -0.5, 2, 7]
>>> yhat = [2.5, 0.0, 2, 8]
>>> root_relative_mean_squared_error(y, yhat)
0.206
Source code in sysidentpy/metrics/_regression.py
  symmetric_mean_absolute_percentage_error(y, yhat) ¶
 Calculate the SMAPE score.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
 y  |   array-like of shape = number_of_outputs  |    Represent the target values.  |  required | 
 yhat  |   array-like of shape = number_of_outputs  |    Target values predicted by the model.  |  required | 
Returns:
| Name | Type | Description | 
|---|---|---|
loss |   float  |    SMAPE output is a non-negative value. The results are percentages values.  |  
Notes
One supposed problem with SMAPE is that it is not symmetric since over-forecasts and under-forecasts are not treated equally.
References
- Wikipedia entry on the Symmetric mean absolute percentage error https://en.wikipedia.org/wiki/Symmetric_mean_absolute_percentage_error
 
Examples:
>>> y = [3, -0.5, 2, 7]
>>> yhat = [2.5, 0.0, 2, 8]
>>> symmetric_mean_absolute_percentage_error(y, yhat)
57.87