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
)。