HistGradientBoostingRegressor#

class sklearn.ensemble.HistGradientBoostingRegressor(loss='squared_error', *, quantile=None, learning_rate=0.1, max_iter=100, max_leaf_nodes=31, max_depth=None, min_samples_leaf=20, l2_regularization=0.0, max_features=1.0, max_bins=255, categorical_features='from_dtype', monotonic_cst=None, interaction_cst=None, warm_start=False, early_stopping='auto', scoring='loss', validation_fraction=0.1, n_iter_no_change=10, tol=1e-07, verbose=0, random_state=None)[源代码]#

基于柱状图的梯度增强回归树。

这个估计器比 GradientBoostingRegressor 对于大数据集(n_samples>= 10 000)。

该估计器对缺失值(NaN)具有原生支持。在训练过程中,树木种植者根据潜在的收益,在每个分裂点学习缺失值的样本是否应该流向左孩子还是右孩子。预测时,具有缺失值的样本将被分配给左或右子。如果在训练期间没有遇到给定特征的缺失值,则具有缺失值的样本将映射到具有最多样本的孩子。看到 梯度增强树的梯度中的功能 此功能的用例示例。

此实现的灵感来自 LightGBM .

阅读更多的 User Guide .

Added in version 0.21.

参数:
loss'平方_错误','绝对_错误',' poisson ',&#39 默认='平方_错误'

在助推过程中使用的损失函数。请注意,“平方误差”、“伽玛”和“poisson”损失实际上实现了“半最小平方损失”、“半伽玛偏差”和“半Poisson偏差”,以简化梯度的计算。此外,“gamma”和“poisson”损失在内部使用日志链接,“gamma”需要 y > 0 而“泊松”需要 y >= 0 .“分位数”使用弹球损失。

在 0.23 版本发生变更: 添加了选项“poisson”。

在 1.1 版本发生变更: 添加了选项“分位数”。

在 1.3 版本发生变更: 添加了选项“gamma”。

quantilefloat,默认=无

如果损失为“分位数”,则此参数指定要估计的分位数,并且必须介于0和1之间。

learning_ratefloat,默认=0.1

学习率,也称为 shrinkage .这被用作叶子值的乘数。使用 1 不会缩水。

max_iterint,默认=100

助推过程的最大迭代次数,即树的最大数量。

max_leaf_nodesint或无,默认=31

每棵树的最大叶子数。必须严格大于1。如果无,则没有最大限制。

max_depthint或无,默认=无

每棵树的最大深度。树的深度是从根部到最深叶子的边缘数量。默认情况下深度不受限制。

min_samples_leafint,默认=20

每片叶子的最小样本数量。对于样本少于几百个的小型数据集,建议降低该值,因为只会构建非常浅的树。

l2_regularizationfloat,默认=0

L2正规化参数惩罚带有小粗麻布的叶子。使用 0 不进行正规化(默认)。

max_featuresfloat,默认=1.0

每个节点分裂中随机选择的特征的比例。这是一种形式的正规化,较小的值会使树的学习能力较弱,并且可能会防止过度匹配。如果交互限制来自 interaction_cst 存在时,仅考虑允许的特征来进行二次抽样。

Added in version 1.4.

max_binsint,默认=255

用于非缺失值的最大bin数。在训练之前,输入数组的每个特征 X 被分组到整值箱中,这使得训练阶段更快。具有少量唯一值的功能可能会使用少于 max_bins 垃圾箱。除了有 max_bins 箱,总是为缺失的值保留一个箱。必须不大于255。

categorical_features形状(n_features)的{bool,int,stra}的类数组 或形状(n_category_features,),默认=无

指示类别特征。

  • 无:没有任何功能被视为绝对的。

  • 布尔数组类:指示类别特征的布尔屏蔽。

  • 类integer数组:指示类别特征的integer索引。

  • 类字符串数组:分类特征的名称(假设训练数据具有特征名称)。

  • "from_dtype" :具有d类型“类别”的收件箱列被认为是分类功能。输入必须是暴露 __dataframe__ 使用此功能的方法,例如pandas或polars DataFrame。

对于每个分类特征,最多必须有 max_bins 独特的类别。编码为数字数据类型的分类特征的负值将被视为缺失值。所有类别值都转换为浮点数。这意味着类别值1.0和1被视为同一类别。

阅读更多的 User Guide .

Added in version 0.24.

在 1.2 版本发生变更: 添加了对功能名称的支持。

在 1.4 版本发生变更: 添加 "from_dtype" 选项.

在 1.6 版本发生变更: 默认值从 None"from_dtype" .

monotonic_cst形状(n_features)或dict的int的类数组,默认=无

使用以下整值指定对每个要素强制执行的单调约束:

  • 1:单调增加

  • 0:无约束

  • -1:单调减少

如果dict具有字符串键,请通过名称将要素映射到单调约束。如果是数组,则要素将按位置映射到约束。看到 使用要素名称指定单调约束 查看使用示例。

阅读更多的 User Guide .

Added in version 0.23.

在 1.2 版本发生变更: 接受以特征名称作为关键字的约束规则。

interaction_cst{“pairwise”,“no_interactions”}或列表/元组/集合的序列 int,默认值为None

指定交互约束,即可以在子节点拆分中相互交互的特征集。

每个项指定允许相互交互的特征索引集。如果特征比这些约束中指定的多,则会将其视为已指定为附加集。

字符串“pairwise”和“no_interactions”分别是仅允许成对或不允许交互的缩写。

例如,共有5个功能, interaction_cst=[{0, 1}] 相当于 interaction_cst=[{0, 1}, {2, 3, 4}] ,并指定树的每个分支要么仅在要素0和1上分裂,要么仅在要素2、3和4上分裂。

Added in version 1.2.

warm_start布尔,默认=假

如果设置为 True ,重复使用上一次调用的解决方案来适应并向集合添加更多估计量。为了使结果有效,应仅在相同的数据上重新训练估计器。看到 the Glossary .

early_stopping“Auto”或布尔,默认=“Auto”

如果是“自动”,则如果样本量大于10000,则启用提前停止。如果为True,则启用提前停止,否则禁用提前停止。

Added in version 0.23.

scoring字符串或可调用或无,默认=' loss '

用于提前停止的评分参数。它可以是单个字符串(请参阅 的 scoring 参数:定义模型评估规则 )或可赎回债券(见 可召唤得分手 ).如果无,则使用估计器的默认评分器。如果 scoring='loss' ,根据损失值检查提前停止。仅在提前停止时使用。

validation_fractionint或float或无,默认=0.1

预留作为提前停止验证数据的训练数据比例(或绝对大小)。如果无,则对训练数据进行提前停止。仅在提前停止时使用。

n_iter_no_changeint,默认值=10

用于确定何时“提前停止”。当最后一次没有时,安装过程将停止 n_iter_no_change 分数比 n_iter_no_change - 1 - 倒数第一个,但有一定的容忍度。仅在提前停止时使用。

tolfloat,默认= 1 e-7

提前停止期间比较分数时使用的绝对容忍度。容忍度越高,我们提前停止的可能性就越大:容忍度越高意味着后续迭代将更难被视为对参考分数的改进。

verboseint,默认=0

冗长程度。如果不为零,请打印有关安装过程的一些信息。 1 仅打印摘要信息, 2 每次迭代打印信息。

random_stateint,RandomState实例或无,默认=无

伪随机数生成器,用于控制分类过程中的子采样,以及在启用提前停止时对训练/验证数据进行拆分。传递int以获得跨多个函数调用的可重复输出。看到 Glossary .

属性:
do_early_stopping_bool

指示训练期间是否使用提前停止。

n_iter_int

提升过程的迭代次数。

n_trees_per_iteration_int

每次迭代时构建的树的数量。对于回归变量,它始终为1。

train_score_nd数组,形状(n_iter_+1,)

训练数据每次迭代时的分数。第一个条目是第一次迭代之前合奏的乐谱。分数根据 scoring 参数.如果 scoring 不是“损失”,则在最多10000个样本的子集上计算分数。如果不提前停车,空的。

validation_score_nd数组,形状(n_iter_+1,)

所持有的验证数据的每次迭代的分数。第一个条目是第一次迭代之前合奏的乐谱。分数根据 scoring 参数.如果没有提前停止或 validation_fraction 没有。

is_categorical_ndray、shape(n_features,)或无

类别特征的布尔屏蔽。 None 如果没有分类特征的话

n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

Names of features seen during fit. Defined only when X has feature names that are all strings.

Added in version 1.0.

参见

GradientBoostingRegressor

精确的梯度增强方法,在具有大量样本的数据集上扩展性较差。

sklearn.tree.DecisionTreeRegressor

决策树回归器。

RandomForestRegressor

一种元估计器,将多个决策树回归量与数据集的各个子样本进行匹配,并使用平均值来提高统计性能并控制过度匹配。

AdaBoostRegressor

元估计器,首先在原始数据集上匹配回归量,然后在同一数据集上匹配回归量的额外副本,但实例的权重根据当前预测的误差进行调整。因此,随后的回归者更多地关注困难的案例。

示例

>>> from sklearn.ensemble import HistGradientBoostingRegressor
>>> from sklearn.datasets import load_diabetes
>>> X, y = load_diabetes(return_X_y=True)
>>> est = HistGradientBoostingRegressor().fit(X, y)
>>> est.score(X, y)
0.92...
fit(X, y, sample_weight=None)[源代码]#

适应梯度提升模型。

参数:
X形状类似阵列(n_samples,n_features)

输入样本。

y形状类似阵列(n_samples,)

目标值。

sample_weightarray-like of shape(n_samples,)default=None

训练数据的权重。

Added in version 0.23.

返回:
self对象

拟合估计量。

get_metadata_routing()[源代码]#

获取此对象的元数据路由。

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

predict(X)[源代码]#

预测X的值。

参数:
X类数组,形状(n_samples,n_features)

输入样本。

返回:
ynd数组,形状(n_samples,)

预测值。

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)

Test samples. For some estimators this may be a precomputed kernel matrix or a list of generic objects instead with shape (n_samples, n_samples_fitted), where n_samples_fitted is the number of samples used in the fitting for the estimator.

y形状的类似阵列(n_samples,)或(n_samples,n_outputs)

真正的价值观 X .

sample_weight形状类似数组(n_samples,),默认=无

样本重量。

返回:
score浮子

\(R^2\)self.predict(X) w.r.t. y .

注意到

\(R^2\) 呼叫时使用的分数 score 在回归器上使用 multioutput='uniform_average' 从0.23版本开始,与默认值保持一致 r2_score .这影响了 score 所有多输出回归器的方法(除了 MultiOutputRegressor ).

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') HistGradientBoostingRegressor[源代码]#

请求元数据传递给 fit

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 fit 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 fit .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 sample_weight 参数 fit .

返回:
self对象

更新的对象。

set_params(**params)[源代码]#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline ).后者具有以下形式的参数 <component>__<parameter> 以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') HistGradientBoostingRegressor[源代码]#

请求元数据传递给 score

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 score 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 score .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 sample_weight 参数 score .

返回:
self对象

更新的对象。

staged_predict(X)[源代码]#

预测每次迭代的回归目标。

该方法允许在每个阶段后进行监控(即确定测试集上的错误)。

Added in version 0.24.

参数:
X形状类似阵列(n_samples,n_features)

输入样本。

收益率:
y形状nd数组的生成器(n_samples,)

每次迭代的输入样本的预测值。