coefficient of determination R^2.
R^2 uses squared error and D^2 uses the deviance of this GLM, see the
:ref:`User Guide <regression_metrics>`.

D^2 is defined as
:math:`D^2 = 1-\frac{D(y_{true},y_{pred})}{D_{null}}`,
:math:`D_{null}` is the null deviance, i.e. the deviance of a model
with intercept alone, which corresponds to :math:`y_{pred} = \bar{y}`.
The mean :math:`\bar{y}` is averaged by sample_weight.
Best possible score is 1.0 and it can be negative (because the model
can be arbitrarily worse).

Parameters
----------
X : {array-like, sparse matrix} of shape (n_samples, n_features)
    Test samples.

y : array-like of shape (n_samples,)
    True values of target.

sample_weight : array-like of shape (n_samples,), default=None
    Sample weights.

Returns
-------
score : float
    D^2 of self.predict(X) w.r.t. y.
rB