MultiOutputRegressor#
- class sklearn.multioutput.MultiOutputRegressor(estimator, *, n_jobs=None)[source]#
多目标回归。
此策略由为每个目标拟合一个回归器组成。这是扩展不原生支持多目标回归的回归器的简单策略。
版本 0.18 新增。
- 参数:
- estimator估计器对象
- n_jobsint 或 None, 可选 (默认=None)
要并行运行的作业数量。
fit、predict和partial_fit(如果传入的估计器支持)将为每个目标并行化。当单个估计器训练或预测速度很快时,使用
n_jobs > 1由于并行开销,可能会导致性能变慢。None表示1,除非在joblib.parallel_backend上下文中。-1表示使用所有可用的进程/线程。有关更多详细信息,请参阅 Glossary。版本 0.20 中已更改:
n_jobs的默认值从1更改为None。
- 属性:
- estimators_列表,包含
n_output个估计器 用于预测的估计器。
- n_features_in_int
拟合期间看到的特征数量。仅当底层
estimator在拟合时公开此类属性时才定义。0.24 版本新增。
- feature_names_in_shape 为 (
n_features_in_,) 的 ndarray 在 fit 期间看到的特征名称。仅当底层估计器在拟合时公开此类属性时才定义。
1.0 版本新增。
- estimators_列表,包含
另请参阅
RegressorChain将回归器排列成链的多标签模型。
MultiOutputClassifier独立地对每个输出进行分类,而不是串联。
示例
>>> import numpy as np >>> from sklearn.datasets import load_linnerud >>> from sklearn.multioutput import MultiOutputRegressor >>> from sklearn.linear_model import Ridge >>> X, y = load_linnerud(return_X_y=True) >>> regr = MultiOutputRegressor(Ridge(random_state=123)).fit(X, y) >>> regr.predict(X[[0]]) array([[176, 35.1, 57.1]])
- fit(X, y, sample_weight=None, **fit_params)[source]#
为每个输出变量独立地拟合模型。
- 参数:
- Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}
输入数据。
- y{array-like, sparse matrix} shape (n_samples, n_outputs)
多输出目标。指示器矩阵会开启多标签估计。
- sample_weightshape 为 (n_samples,) 的 array-like, default=None
样本权重。如果为
None,则样本加权相等。仅当底层回归器支持样本权重时才支持。- **fit_paramsdict of string -> object
传递给每个步骤的
estimator.fit方法的参数。0.23 版本新增。
- 返回:
- selfobject
返回拟合的实例。
- get_metadata_routing()[source]#
获取此对象的元数据路由。
请查阅 用户指南,了解路由机制如何工作。
在版本 1.3 中新增。
- 返回:
- routingMetadataRouter
封装路由信息的
MetadataRouter。
- get_params(deep=True)[source]#
获取此估计器的参数。
- 参数:
- deepbool, default=True
如果为 True,将返回此估计器以及包含的子对象(如果它们是估计器)的参数。
- 返回:
- paramsdict
参数名称映射到其值。
- partial_fit(X, y, sample_weight=None, **partial_fit_params)[source]#
为每个输出变量增量式地拟合模型。
- 参数:
- Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}
输入数据。
- y{array-like, sparse matrix} shape (n_samples, n_outputs)
多输出目标。
- sample_weightshape 为 (n_samples,) 的 array-like, default=None
样本权重。如果为
None,则样本加权相等。仅当底层回归器支持样本权重时才支持。- **partial_fit_paramsdict of str -> object
传递给每个子估计器的
estimator.partial_fit方法的参数。仅当
enable_metadata_routing=True时可用。请参阅 用户指南。在版本 1.3 中新增。
- 返回:
- selfobject
返回拟合的实例。
- predict(X)[source]#
使用每个目标变量的模型预测多输出变量。
- 参数:
- Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}
输入数据。
- 返回:
- y{array-like, sparse matrix} shape (n_samples, n_outputs)
跨多个预测器预测的多输出目标。注意:为每个预测器生成单独的模型。
- 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。- 参数:
- Xshape 为 (n_samples, n_features) 的 array-like
测试样本。对于某些估计器,这可能是一个预先计算的核矩阵或一个通用对象列表,形状为
(n_samples, n_samples_fitted),其中n_samples_fitted是用于估计器拟合的样本数。- yshape 为 (n_samples,) 或 (n_samples, n_outputs) 的 array-like
X的真实值。- sample_weightshape 为 (n_samples,) 的 array-like, default=None
样本权重。
- 返回:
- scorefloat
self.predict(X)相对于y的 \(R^2\)。
注意事项
从 0.23 版本开始,调用回归器的
score方法使用的 \(R^2\) 得分使用multioutput='uniform_average',以保持与r2_score的默认值一致。这会影响所有多输出回归器(MultiOutputRegressor除外)的score方法。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') MultiOutputRegressor[source]#
配置是否应请求元数据以传递给
fit方法。请注意,此方法仅在以下情况下相关:此估计器用作 元估计器 中的子估计器,并且通过
enable_metadata_routing=True启用了元数据路由(请参阅sklearn.set_config)。请查看 用户指南 以了解路由机制的工作原理。每个参数的选项如下:
True:请求元数据,如果提供则传递给fit。如果未提供元数据,则忽略该请求。False:不请求元数据,元估计器不会将其传递给fit。None:不请求元数据,如果用户提供元数据,元估计器将引发错误。str:应将元数据以给定别名而不是原始名称传递给元估计器。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED) 保留现有请求。这允许您更改某些参数的请求而不更改其他参数。在版本 1.3 中新增。
- 参数:
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
fit方法中sample_weight参数的元数据路由。
- 返回:
- selfobject
更新后的对象。
- set_params(**params)[source]#
设置此估计器的参数。
此方法适用于简单的估计器以及嵌套对象(如
Pipeline)。后者具有<component>__<parameter>形式的参数,以便可以更新嵌套对象的每个组件。- 参数:
- **paramsdict
估计器参数。
- 返回:
- selfestimator instance
估计器实例。
- set_partial_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') MultiOutputRegressor[source]#
Configure whether metadata should be requested to be passed to the
partial_fitmethod.请注意,此方法仅在以下情况下相关:此估计器用作 元估计器 中的子估计器,并且通过
enable_metadata_routing=True启用了元数据路由(请参阅sklearn.set_config)。请查看 用户指南 以了解路由机制的工作原理。每个参数的选项如下:
True: metadata is requested, and passed topartial_fitif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it topartial_fit.None:不请求元数据,如果用户提供元数据,元估计器将引发错误。str:应将元数据以给定别名而不是原始名称传递给元估计器。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED) 保留现有请求。这允许您更改某些参数的请求而不更改其他参数。在版本 1.3 中新增。
- 参数:
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
sample_weightparameter inpartial_fit.
- 返回:
- selfobject
更新后的对象。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') MultiOutputRegressor[source]#
配置是否应请求元数据以传递给
score方法。请注意,此方法仅在以下情况下相关:此估计器用作 元估计器 中的子估计器,并且通过
enable_metadata_routing=True启用了元数据路由(请参阅sklearn.set_config)。请查看 用户指南 以了解路由机制的工作原理。每个参数的选项如下:
True:请求元数据,如果提供则传递给score。如果未提供元数据,则忽略该请求。False:不请求元数据,元估计器不会将其传递给score。None:不请求元数据,如果用户提供元数据,元估计器将引发错误。str:应将元数据以给定别名而不是原始名称传递给元估计器。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED) 保留现有请求。这允许您更改某些参数的请求而不更改其他参数。在版本 1.3 中新增。
- 参数:
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
score方法中sample_weight参数的元数据路由。
- 返回:
- selfobject
更新后的对象。