RegressorMixin#

class sklearn.base.RegressorMixin[來源]#

scikit-learn 中所有迴歸估計器的混合類別。

此混合類別定義了以下功能:

  • 透過 estimator_type 標籤將估計器類型設定為 "regressor"

  • score 方法預設為 r2_score

  • 強制 fit 要求透過 requires_y 標籤傳遞 y,這是透過設定迴歸器類型標籤完成的。

請在 使用者指南 中閱讀更多內容。

範例

>>> import numpy as np
>>> from sklearn.base import BaseEstimator, RegressorMixin
>>> # Mixin classes should always be on the left-hand side for a correct MRO
>>> class MyEstimator(RegressorMixin, BaseEstimator):
...     def __init__(self, *, param=1):
...         self.param = param
...     def fit(self, X, y=None):
...         self.is_fitted_ = True
...         return self
...     def predict(self, X):
...         return np.full(shape=X.shape[0], fill_value=self.param)
>>> estimator = MyEstimator(param=0)
>>> X = np.array([[1, 2], [2, 3], [3, 4]])
>>> y = np.array([-1, 0, 1])
>>> estimator.fit(X, y).predict(X)
array([0, 0, 0])
>>> estimator.score(X, y)
0.0
score(X, y, sample_weight=None)[來源]#

返回預測的決定係數。

決定係數 \(R^2\) 定義為 \((1 - \frac{u}{v})\),其中 \(u\) 是殘差平方和 ((y_true - y_pred)** 2).sum(),而 \(v\) 是總平方和 ((y_true - y_true.mean()) ** 2).sum()。最佳可能分數為 1.0,它可以是負數(因為模型可能任意更差)。一個總是預測 y 的期望值而忽略輸入特徵的常數模型,其 \(R^2\) 分數將為 0.0。

參數:
X形狀為 (n_samples, n_features) 的類陣列

測試樣本。對於某些估計器,這可能是一個預先計算的核矩陣或形狀為 (n_samples, n_samples_fitted) 的通用物件列表,其中 n_samples_fitted 是估計器的擬合中所使用的樣本數。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列

X 的真實值。

sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None

樣本權重。

返回:
scorefloat

self.predict(X) 相對於 y\(R^2\)

注意事項

在迴歸器上調用 score 時使用的 \(R^2\) 分數,從 0.23 版本開始使用 multioutput='uniform_average',以與 r2_score 的預設值保持一致。這會影響所有多輸出迴歸器的 score 方法(除了 MultiOutputRegressor)。