当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn HistGradientBoostingRegressor用法及代码示例


本文简要介绍python语言中 sklearn.ensemble.HistGradientBoostingRegressor 的用法。

用法:

class sklearn.ensemble.HistGradientBoostingRegressor(loss='squared_error', *, learning_rate=0.1, max_iter=100, max_leaf_nodes=31, max_depth=None, min_samples_leaf=20, l2_regularization=0.0, max_bins=255, categorical_features=None, monotonic_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)

基于直方图的梯度提升回归树。

对于大型数据集(n_samples >= 10 000),此估计器比 GradientBoostingRegressor 快得多。

此估算器对缺失值 (NaN) 具有原生支持。在训练过程中,树种植者根据潜在增益在每个分割点学习具有缺失值的样本是应该去左孩子还是右孩子。在预测时,具有缺失值的样本因此被分配给左孩子或右孩子。如果在训练期间没有遇到给定特征的缺失值,则将具有缺失值的样本映射到拥有最多样本的子节点。

此实现的灵感来自 LightGBM

在用户指南中阅读更多信息。

参数

loss{‘squared_error’, ‘absolute_error’, ‘poisson’},默认='squared_error'

在提升过程中使用的损失函数。请注意,“squared error” 和 “poisson” 损失实际上实现了“半最小二乘损失”和 “half poisson deviance” 以简化梯度的计算。此外,“poisson” 损失在内部使用 log-link 并需要 y >= 0

learning_rate浮点数,默认=0.1

学习率,也称为收缩.这用作叶子值的乘法因子。采用1因为没有收缩。

max_iter整数,默认=100

boosting过程的最大迭代次数,即最大树数。

max_leaf_nodesint 或无,默认=31

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

max_depthint 或无,默认=无

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

min_samples_leaf整数,默认=20

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

l2_regularization浮点数,默认=0

L2 正则化参数。使用0 不进行正则化(默认)。

max_bins整数,默认=255

用于非缺失值的最大箱数。在训练之前,输入数组 X 的每个特征都被分箱到整数值箱中,这允许更快的训练阶段。具有少量唯一值的特征可能使用少于max_bins bin。除了max_bins bin 之外,还始终为缺失值保留一个 bin。不得大于 255。

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

表示分类特征。

  • 无:没有特征将被视为分类。
  • 类似布尔数组:指示分类特征的布尔掩码。
  • 类似整数数组:指示分类特征的整数索引。

对于每个分类特征,最多只能有max_bins唯一的分类,并且每个分类值必须在[0,max_bins-1]内。

在用户指南中阅读更多信息。

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

指示要对每个特征强制执行的单调约束。 -1、1、0分别对应负约束、正约束和无约束。在用户指南中阅读更多信息。

warm_start布尔,默认=假

当设置为 True 时,重用前一个调用的解决方案以适应并向集成添加更多估计器。为了使结果有效,估计器应该只在相同的数据上重新训练。请参阅词汇表。

early_stopping‘auto’ 或布尔值,默认='auto'

如果‘auto’,如果样本大小大于10000,则启用提前停止。如果为True,则启用提前停止,否则禁用提前停止。

scoringstr or callable or None, default='loss'

用于提前停止的评分参数。它可以是单个字符串(请参阅评分参数:定义模型评估规则)或可调用的(请参阅从度量函数定义评分策略)。如果没有,则使用估计器的默认记分器。如果 scoring='loss' ,则根据损失值检查提前停止。仅在执行提前停止时使用。

validation_fractionint 或浮点数或无,默认=0.1

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

n_iter_no_change整数,默认=10

用于确定何时“early stop”。当最后一个 n_iter_no_change 分数都没有优于 n_iter_no_change - 1 -th-to-last 分数时,拟合过程将停止,达到一定的容差。仅在执行提前停止时使用。

tol浮点数,默认=1e-7

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

verbose整数,默认=0

详细程度。如果不为零,则打印一些有关拟合过程的信息。

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

伪随机数生成器用于控制分箱过程中的二次采样,如果启用了提前停止,则训练/验证数据拆分。传递 int 以获得跨多个函数调用的可重现输出。请参阅词汇表。

属性

do_early_stopping_bool

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

n_iter_int

提升过程的迭代次数。

n_trees_per_iteration_int

在每次迭代中构建的树的数量。对于回归器,这始终为 1。

train_score_ndarray,形状(n_iter_+1,)

训练数据上每次迭代的分数。第一个条目是第一次迭代之前的集成得分。分数根据scoring 参数计算。如果 scoring 不是 ‘loss’,则在最多 10 000 个样本的子集上计算分数。如果没有提前停止,则为空。

validation_score_ndarray,形状(n_iter_+1,)

held-out 验证数据上每次迭代的分数。第一个条目是第一次迭代之前的集成得分。分数根据scoring 参数计算。如果没有提前停止或 validation_fraction 为 None,则为空。

is_categorical_ndarray,形状(n_features,)或无

分类特征的布尔掩码。 None 如果没有分类特征。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

例子

>>> 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...

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.ensemble.HistGradientBoostingRegressor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。