回归器混合类#
- class sklearn.base.RegressorMixin[source]#
Scikit-learn 中所有回归估计器的混合类。
此混合类定义以下功能:
通过
estimator_type
标签将估计器类型设置为"regressor"
;score
方法默认为r2_score
。通过
requires_y
标签强制要求fit
方法需要传递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)[source]#
返回预测的决定系数。
决定系数 \(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
样本权重。
- 返回:
- score浮点数
self.predict(X)
相对于y
的 \(R^2\)。
备注
从 0.23 版本开始,在回归器上调用
score
时使用的 \(R^2\) 得分使用multioutput='uniform_average'
,以保持与r2_score
的默认值一致。这会影响所有多输出回归器的score
方法(MultiOutputRegressor
除外)。
图库示例#
元数据路由