How to get a regression summary in scikit-learn like R does? How to get a regression summary in scikit-learn like R does? python python

How to get a regression summary in scikit-learn like R does?


There exists no R type regression summary report in sklearn. The main reason is that sklearn is used for predictive modelling / machine learning and the evaluation criteria are based on performance on previously unseen data (such as predictive r^2 for regression).

There does exist a summary function for classification called sklearn.metrics.classification_report which calculates several types of (predictive) scores on a classification model.

For a more classic statistical approach, take a look at statsmodels.


I use:

import sklearn.metrics as metricsdef regression_results(y_true, y_pred):    # Regression metrics    explained_variance=metrics.explained_variance_score(y_true, y_pred)    mean_absolute_error=metrics.mean_absolute_error(y_true, y_pred)     mse=metrics.mean_squared_error(y_true, y_pred)     mean_squared_log_error=metrics.mean_squared_log_error(y_true, y_pred)    median_absolute_error=metrics.median_absolute_error(y_true, y_pred)    r2=metrics.r2_score(y_true, y_pred)    print('explained_variance: ', round(explained_variance,4))        print('mean_squared_log_error: ', round(mean_squared_log_error,4))    print('r2: ', round(r2,4))    print('MAE: ', round(mean_absolute_error,4))    print('MSE: ', round(mse,4))    print('RMSE: ', round(np.sqrt(mse),4))


statsmodels package gives a quiet decent summary

from statsmodels.api import OLSOLS(dataset.target,dataset.data).fit().summary()