[scikit-learn] Regarding negative value of sklearn.metrics.r2_score and sklearn.metrics.explained_variance_score

Sebastian Raschka mail at sebastianraschka.com
Thu Aug 12 15:28:03 EDT 2021


The R2 function in scikit-learn works fine. A negative means that the regression model fits the data worse than a horizontal line representing the sample mean. E.g. you usually get that if you are overfitting the training set a lot and then apply that model to the test set. The econometrics book probably didn't cover applying a model to an independent data or test set, hence the [0, 1] suggestion.

Cheers,
Sebastian


On Aug 12, 2021, 2:20 PM -0500, Samir K Mahajan <samirkmahajan1972 at gmail.com>, wrote:
>
> Dear Christophe Pallier,  Reshama Saikh and Tromek Drabas,
>
> Thank you for your kind response.  Fair enough. I go with you R2 is not a square.  However, if you open any  book of econometrics,  it says R2 is  a ratio that lies between 0  and 1.  This is the constraint. It measures the proportion or percentage of the total variation in  response variable (Y)  explained by the regressors (Xs) in the model . Remaining proportion of variation in Y, if any,  is explained by the residual term(u) Now, sklearn.matrics. metrics.r2_score gives me a negative value lying on a linear scale (-5.763335245921777). This negative value breaks the constraint. I just want to highlight that. I think it needs to be corrected. Rest is up to you .
>
> I find that  Reshama Saikh  is hurt by my email. I am really sorry for that. Please note I never undermine your  capabilities and initiatives. You are great people doing great jobs. I realise that I should have been more sensible.
>
> My regards to all of you.
>
> Samir K Mahajan
>
>
>
>
>
>
>
>
> > On Thu, Aug 12, 2021 at 12:02 PM Christophe Pallier <christophe at pallier.org> wrote:
> > > Simple: despite its name R2 is not a square. Look up its definition.
> > >
> > > > On Wed, 11 Aug 2021, 21:17 Samir K Mahajan, <samirkmahajan1972 at gmail.com> wrote:
> > > > > Dear All,
> > > > > I am amazed to find  negative  values of  sklearn.metrics.r2_score and sklearn.metrics.explained_variance_score in a model ( cross validation of OLS regression model)
> > > > > However, what amuses me more  is seeing you justifying   negative  'sklearn.metrics.r2_score ' in your documentation.  This does not make sense to me . Please justify to me how squared values are negative.
> > > > >
> > > > > Regards,
> > > > > Samir K Mahajan.
> > > > >
> > > > > _______________________________________________
> > > > > scikit-learn mailing list
> > > > > scikit-learn at python.org
> > > > > https://mail.python.org/mailman/listinfo/scikit-learn
> > > _______________________________________________
> > > scikit-learn mailing list
> > > scikit-learn at python.org
> > > https://mail.python.org/mailman/listinfo/scikit-learn
> _______________________________________________
> scikit-learn mailing list
> scikit-learn at python.org
> https://mail.python.org/mailman/listinfo/scikit-learn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.python.org/pipermail/scikit-learn/attachments/20210812/9353a56b/attachment.html>


More information about the scikit-learn mailing list