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


Python sklearn HistGradientBoostingClassifier用法及代码示例


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

用法:

class sklearn.ensemble.HistGradientBoostingClassifier(loss='auto', *, 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),此估计器比 GradientBoostingClassifier 快得多。

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

此实现的灵感来自 LightGBM

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

参数

loss{‘auto’, ‘binary_crossentropy’,‘categorical_crossentropy’},默认='自动'

在提升过程中使用的损失函数。 ‘binary_crossentropy’(也称为逻辑损失)用于二元分类,并推广到‘categorical_crossentropy’用于多类分类。 ‘auto’ 将根据问题的性质自动选择任一损失。

learning_rate浮点数,默认=0.1

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

max_iter整数,默认=100

boosting过程的最大迭代次数,即二分类的最大树数。对于多类分类,每次迭代都会构建n_classes 树。

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 以获得跨多个函数调用的可重现输出。请参阅词汇表。

属性

classes_数组,形状 = (n_classes,)

类标签。

do_early_stopping_bool

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

n_iter_int

提升过程的迭代次数。

n_trees_per_iteration_int

在每次迭代中构建的树的数量。对于二元分类,这等于 1,对于多类分类,它等于 n_classes

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 HistGradientBoostingClassifier
>>> from sklearn.datasets import load_iris
>>> X, y = load_iris(return_X_y=True)
>>> clf = HistGradientBoostingClassifier().fit(X, y)
>>> clf.score(X, y)
1.0

相关用法


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