/Regression-Error-Characteristic-Curve

Regression Error Characteristic (REC) Curves in Python

Primary LanguagePythonApache License 2.0Apache-2.0

build License Forks Stars

Regression Error Characteristic Curve in Python

Regression Error Characteristic (REC) curves can be used to visualize the performance of the regressor models. REC illustrates the absolute deviation tolerance versus the fraction of the exemplars predicted correctly within the tolerance interval. The resulting curve estimates the cumulative distribution function of the error. The area over the REC curve (AOC), which can be calculated via the area under the REC curve (AOC = 1 - AUC) is a biased estimate of the expected error. Furthermore, the coefficient of determination (R^2) can also be calculated with respect to the AOC Reference 1. Likewise the ROC curve, the shape of the REC curve can also be used as a guidance for the users to reveal additional information about the data modeling. The REC curve was implemented in Python and the details of the error metrics and scaling of the residuals are also available Reference 2.

Quick Start

Here is an exmple of using REC. To learn more about the details, you can check Examples:

# plot REC curve
from rec import RegressionErrorCharacteristic
r = RegressionErrorCharacteristic(y_true, y_pred)
r.plot()

rec

Better Option: SlickML

This algorithm is also implemented in more details in SlickML library. For more info, please check out SlickML GitHub and SlickML API Docs.

pip install slickml

Here is an example using SlickML to quickly visualize the regression metrics:

# plot regression metrics
from slickml.metrics import RegressionMetrics
r = RegressionMetrics(y_true, y_pred)
r.plot()

regmetrics

Contributing

Pull requests are more than welcome!

Citing REC

If you use REC in academic work, please consider citing my SlickML library.

Bibtex Entry:

@software{slickml2020,
  title={SlickML: Slick Machine Learning in Python},
  author={Tahmassebi, Amirhessam and Smith, Trace},
  url={https://github.com/slickml/slick-ml},
  version={0.2.0},
  year={2021},
}

@article{tahmassebi2021slickml,
  title={Slickml: Slick machine learning in python},
  author={Tahmassebi, Amirhessam and Smith, Trace},
  journal={URL available at: https://github. com/slickml/slick-ml},
  year={2021}
}