Python API 参考
本页面提供了 xgboost 的 Python API 参考,关于 Python 包的更多信息,请参阅 Python 包介绍。
全局配置
- xgboost.config_context(**new_config)[源代码]
全局XGBoost配置的上下文管理器。
全局配置由一组可以在全局范围内应用的参数组成。有关全局配置中支持的参数的完整列表,请参见 全局配置。
备注
当上下文管理器退出时,所有设置,不仅仅是当前修改的那些,都将恢复到之前的值。这不是线程安全的。
Added in version 1.4.0.
示例
import xgboost as xgb # Show all messages, including ones pertaining to debugging xgb.set_config(verbosity=2) # Get current value of global configuration # This is a dict containing all parameters in the global configuration, # including 'verbosity' config = xgb.get_config() assert config['verbosity'] == 2 # Example of using the context manager xgb.config_context(). # The context manager will restore the previous value of the global # configuration upon exiting. with xgb.config_context(verbosity=0): # Suppress warning caused by model generated with XGBoost version < 1.0.0 bst = xgb.Booster(model_file='./old_model.bin') assert xgb.get_config()['verbosity'] == 2 # old value restored
嵌套配置上下文也受支持:
示例
with xgb.config_context(verbosity=3): assert xgb.get_config()["verbosity"] == 3 with xgb.config_context(verbosity=2): assert xgb.get_config()["verbosity"] == 2 xgb.set_config(verbosity=2) assert xgb.get_config()["verbosity"] == 2 with xgb.config_context(verbosity=3): assert xgb.get_config()["verbosity"] == 3
参见
set_config
设置全局 XGBoost 配置
get_config
获取全局配置的当前值
- xgboost.set_config(**new_config)[源代码]
设置全局配置。
全局配置由一组可以在全局范围内应用的参数组成。有关全局配置中支持的参数的完整列表,请参见 全局配置。
Added in version 1.4.0.
- 参数:
new_config (Dict[str, Any]) – 表示参数及其值的关键字参数
- 返回类型:
None
示例
import xgboost as xgb # Show all messages, including ones pertaining to debugging xgb.set_config(verbosity=2) # Get current value of global configuration # This is a dict containing all parameters in the global configuration, # including 'verbosity' config = xgb.get_config() assert config['verbosity'] == 2 # Example of using the context manager xgb.config_context(). # The context manager will restore the previous value of the global # configuration upon exiting. with xgb.config_context(verbosity=0): # Suppress warning caused by model generated with XGBoost version < 1.0.0 bst = xgb.Booster(model_file='./old_model.bin') assert xgb.get_config()['verbosity'] == 2 # old value restored
嵌套配置上下文也受支持:
示例
with xgb.config_context(verbosity=3): assert xgb.get_config()["verbosity"] == 3 with xgb.config_context(verbosity=2): assert xgb.get_config()["verbosity"] == 2 xgb.set_config(verbosity=2) assert xgb.get_config()["verbosity"] == 2 with xgb.config_context(verbosity=3): assert xgb.get_config()["verbosity"] == 3
- xgboost.get_config()[源代码]
获取全局配置的当前值。
全局配置由一组可以在全局范围内应用的参数组成。有关全局配置中支持的参数的完整列表,请参见 全局配置。
Added in version 1.4.0.
- 返回:
args – 全局参数及其值的列表
- 返回类型:
Dict[str, Any]
示例
import xgboost as xgb # Show all messages, including ones pertaining to debugging xgb.set_config(verbosity=2) # Get current value of global configuration # This is a dict containing all parameters in the global configuration, # including 'verbosity' config = xgb.get_config() assert config['verbosity'] == 2 # Example of using the context manager xgb.config_context(). # The context manager will restore the previous value of the global # configuration upon exiting. with xgb.config_context(verbosity=0): # Suppress warning caused by model generated with XGBoost version < 1.0.0 bst = xgb.Booster(model_file='./old_model.bin') assert xgb.get_config()['verbosity'] == 2 # old value restored
嵌套配置上下文也受支持:
示例
with xgb.config_context(verbosity=3): assert xgb.get_config()["verbosity"] == 3 with xgb.config_context(verbosity=2): assert xgb.get_config()["verbosity"] == 2 xgb.set_config(verbosity=2) assert xgb.get_config()["verbosity"] == 2 with xgb.config_context(verbosity=3): assert xgb.get_config()["verbosity"] == 3
核心数据结构
核心 XGBoost 库。
- class xgboost.DMatrix(data, label=None, *, weight=None, base_margin=None, missing=None, silent=False, feature_names=None, feature_types=None, nthread=None, group=None, qid=None, label_lower_bound=None, label_upper_bound=None, feature_weights=None, enable_categorical=False, data_split_mode=DataSplitMode.ROW)[源代码]
基类:
object
XGBoost 中使用的数据矩阵。
DMatrix 是 XGBoost 使用的内部数据结构,它针对内存效率和训练速度进行了优化。你可以从多种不同的数据源构建 DMatrix。
- 参数:
data (Any) – DMatrix 的数据源。查看 各种 XGBoost 函数支持的数据结构 以获取支持的输入类型列表。
label (Any | None) – 训练数据的标签。
weight (Any | None) – 每个实例的权重。 .. 注意:: 对于排序任务,权重是按组分配的。 在排序任务中,每个组分配一个权重(而不是每个数据点)。这是因为我们只关心每个组内数据点的相对顺序,所以为单个数据点分配权重是没有意义的。
missing (float | None) – 输入数据中需要作为缺失值存在的值。如果为 None,则默认为 np.nan。
silent (bool) – 是否在构建过程中打印消息
feature_types (Sequence[str] | None) – 设置特征的类型。如果 data 是 DataFrame 类型并且传递 enable_categorical=True,类型将根据列类型自动推断。否则,可以传递一个与 data 中列数相同长度的类列表输入,具有以下可能的值: - “c”,表示分类列。 - “q”,表示数值列。 - “int”,表示整数列。 - “i”,表示布尔列。 请注意,虽然分类类型在模型拟合目的上与其他类型处理方式不同,但其他类型不影响生成的模型,但在其他功能(如特征重要性)中有影响。对于分类特征,输入假定已由用户预处理和编码。编码可以通过
sklearn.preprocessing.OrdinalEncoder
或 pandas dataframe .cat.codes 方法完成。当用户想要指定分类特征而不必构建数据框作为输入时,这很有用。nthread (int | None) – 在适用并行化时用于加载数据的线程数。如果为 -1,则使用系统上可用的最大线程数。
group (Any | None) – 所有排名组的组大小。
qid (Any | None) – 用于排名的数据样本查询ID。
label_lower_bound (Any | None) – 生存训练的下限。
label_upper_bound (Any | None) – 生存训练的上限。
feature_weights (Any | None) – 设置列采样的特征权重。
enable_categorical (bool) –
Added in version 1.3.0.
备注
此参数为实验性
实验性支持对分类特征进行专门化处理。
如果传递 ‘True’ 并且 ‘data’ 是一个数据框(来自 Pandas、Modin 或 cuDF 等支持的库),分类类型的列将自动设置为分类类型(feature_type=’c’)在生成的 DMatrix 中。
如果传递 ‘False’ 并且 ‘data’ 是一个包含分类列的数据框,将会导致抛出一个错误。
如果 ‘data’ 不是一个数据框,则忽略此参数。
JSON/UBJSON 序列化格式是此功能所必需的。
data_split_mode (DataSplitMode)
- property feature_types: Sequence[str] | None
特征类型(列类型)。
这是用于显示结果和支持分类数据。详情请参见
DMatrix
。将其设置为
None
会重置现有的特征类型。
- get_data()[源代码]
从 DMatrix 获取预测器作为 CSR 矩阵。此获取器主要用于测试目的。如果这是一个量化的 DMatrix,则返回量化值而不是输入值。
Added in version 1.7.0.
- 返回类型:
- get_float_info(field)[源代码]
从 DMatrix 获取浮点属性。
- 参数:
field (str) – 信息的字段名称
- 返回:
info – 一个包含数据浮点信息的 numpy 数组
- 返回类型:
array
- get_uint_info(field)[源代码]
从 DMatrix 获取无符号整数属性。
- 参数:
field (str) – 信息的字段名称
- 返回:
info – 一个包含数据无符号整数信息的 numpy 数组
- 返回类型:
array
- save_binary(fname, silent=True)[源代码]
将 DMatrix 保存到 XGBoost 缓冲区。保存的二进制文件可以通过提供路径作为
xgboost.DMatrix()
的输入来稍后加载。- 参数:
fname (string or os.PathLike) – 输出缓冲文件的名称。
silent (bool (optional; default: True)) – 如果设置,输出将被抑制。
- 返回类型:
None
- set_base_margin(margin)[源代码]
设置助推器的基边距以开始。
这可以用来指定现有模型的预测值作为 base_margin。然而,请记住需要的是边际值,而不是转换后的预测值,例如对于逻辑回归:需要放入逻辑转换前的值,参见 example/demo.py。
- 参数:
margin (array like) – 每个数据点的预测边际
- 返回类型:
None
- set_float_info(field, data)[源代码]
将浮点类型属性设置到 DMatrix 中。
- 参数:
field (str) – 信息的字段名称
data (numpy array) – 要设置的数据数组
- 返回类型:
None
- set_float_info_npy2d(field, data)[源代码]
- 将浮点类型属性设置到 DMatrix 中
对于 numpy 二维数组输入
- 参数:
field (str) – 信息的字段名称
data (numpy array) – 要设置的数据数组
- 返回类型:
None
- set_info(*, label=None, weight=None, base_margin=None, group=None, qid=None, label_lower_bound=None, label_upper_bound=None, feature_names=None, feature_types=None, feature_weights=None)[源代码]
Set meta info for DMatrix. See doc string for
xgboost.DMatrix
.
- set_uint_info(field, data)[源代码]
将 uint 类型属性设置到 DMatrix 中。
- 参数:
field (str) – 信息的字段名称
data (numpy array) – 要设置的数据数组
- 返回类型:
None
- class xgboost.QuantileDMatrix(data, label=None, *, weight=None, base_margin=None, missing=None, silent=False, feature_names=None, feature_types=None, nthread=None, max_bin=None, ref=None, group=None, qid=None, label_lower_bound=None, label_upper_bound=None, feature_weights=None, enable_categorical=False, data_split_mode=DataSplitMode.ROW)[源代码]
基类:
DMatrix
A DMatrix variant that generates quantilized data directly from input for the
hist
tree method. This DMatrix is primarily designed to save memory in training by avoiding intermediate storage. Setmax_bin
to control the number of bins during quantisation, which should be consistent with the training parametermax_bin
. WhenQuantileDMatrix
is used for validation/test dataset,ref
should be anotherQuantileDMatrix``(or ``DMatrix
, but not recommended as it defeats the purpose of saving memory) constructed from training dataset. Seexgboost.DMatrix
for documents on meta info.备注
在没有提供参考(训练数据集)``QuantileDMatrix`` 的情况下,不要将
QuantileDMatrix
用作验证/测试数据集,因为量化过程中可能会丢失一些信息。Added in version 1.7.0.
- 参数:
max_bin (int | None) – 直方图的箱数,应与训练参数
max_bin
一致。ref (DMatrix | None) – 提供分位数信息的训练数据集,在创建带有
QuantileDMatrix
的验证/测试数据集时需要。将训练 DMatrix 作为参考意味着对训练数据应用的相同量化也应用于验证/测试数据。data (Any) – DMatrix 的数据源。查看 各种 XGBoost 函数支持的数据结构 以获取支持的输入类型列表。
label (Any | None) – 训练数据的标签。
weight (Any | None) – 每个实例的权重。 .. 注意:: 对于排序任务,权重是按组分配的。 在排序任务中,每个组分配一个权重(而不是每个数据点)。这是因为我们只关心每个组内数据点的相对顺序,所以为单个数据点分配权重是没有意义的。
missing (float | None) – 输入数据中需要作为缺失值存在的值。如果为 None,则默认为 np.nan。
silent (bool) – 是否在构建过程中打印消息
feature_types (Sequence[str] | None) – 设置特征的类型。如果 data 是 DataFrame 类型并且传递 enable_categorical=True,类型将根据列类型自动推断。否则,可以传递一个与 data 中列数相同长度的类列表输入,具有以下可能的值: - “c”,表示分类列。 - “q”,表示数值列。 - “int”,表示整数列。 - “i”,表示布尔列。 请注意,虽然分类类型在模型拟合目的上与其他类型处理方式不同,但其他类型不影响生成的模型,但在其他功能(如特征重要性)中有影响。对于分类特征,输入假定已由用户预处理和编码。编码可以通过
sklearn.preprocessing.OrdinalEncoder
或 pandas dataframe .cat.codes 方法完成。当用户想要指定分类特征而不必构建数据框作为输入时,这很有用。nthread (int | None) – 在适用并行化时用于加载数据的线程数。如果为 -1,则使用系统上可用的最大线程数。
group (Any | None) – 所有排名组的组大小。
qid (Any | None) – 用于排名的数据样本查询ID。
label_lower_bound (Any | None) – 生存训练的下限。
label_upper_bound (Any | None) – 生存训练的上限。
feature_weights (Any | None) – 设置列采样的特征权重。
enable_categorical (bool) –
Added in version 1.3.0.
备注
此参数为实验性
实验性支持对分类特征进行专门化处理。
如果传递 ‘True’ 并且 ‘data’ 是一个数据框(来自 Pandas、Modin 或 cuDF 等支持的库),分类类型的列将自动设置为分类类型(feature_type=’c’)在生成的 DMatrix 中。
如果传递 ‘False’ 并且 ‘data’ 是一个包含分类列的数据框,将会导致抛出一个错误。
如果 ‘data’ 不是一个数据框,则忽略此参数。
JSON/UBJSON 序列化格式是此功能所必需的。
data_split_mode (DataSplitMode)
- class xgboost.Booster(params=None, cache=None, model_file=None)[源代码]
基类:
object
XGBoost 的助推器。
Booster 是 xgboost 的模型,包含用于训练、预测和评估的底层例程。
- 参数:
- attributes()[源代码]
以字典形式获取存储在 Booster 中的属性。
- 返回:
结果 – 如果没有属性,则返回一个空字典。
- 返回类型:
dictionary of attribute_name: attribute_value pairs of strings.
- boost(dtrain, iteration, grad, hess)[源代码]
使用自定义的梯度统计数据对助推器进行一次迭代增强。类似于
xgboost.Booster.update()
,此函数不应由用户直接调用。
- dump_model(fout, fmap='', with_stats=False, dump_format='text')[源代码]
将模型转储到文本或JSON文件中。与
save_model()
不同,输出格式主要用于可视化或解释,因此更易于人类阅读,但不能加载回XGBoost。
- get_dump(fmap='', with_stats=False, dump_format='text')[源代码]
返回模型转储为字符串列表。与
save_model()
不同,输出格式主要用于可视化或解释,因此更易于人类阅读,但不能加载回 XGBoost。
- get_score(fmap='', importance_type='weight')[源代码]
获取每个特征的重要性。对于树模型,重要性类型可以定义为:
‘weight’: 特征在所有树中用于分割数据的次数。
gain: 该特征在所有分割中使用的平均增益。
‘cover’: 该特征在所有分割中使用的平均覆盖率。
total_gain:该特征在所有分割中使用的总增益。
‘total_cover’: 该特征在所有分割中使用的总覆盖率。
备注
对于线性模型,仅定义了“权重”,它是没有偏差的归一化系数。
备注
零重要性特征将不会被包含
请记住,此函数不包括零重要性特征,即那些在任何分割条件中未使用的特征。
- get_split_value_histogram(feature, fmap='', bins=None, as_pandas=True)[源代码]
获取特征的分裂值直方图
- 参数:
- 返回:
指定特征的分割值使用直方图
可以是numpy数组或pandas DataFrame。
- 返回类型:
- inplace_predict(data, iteration_range=(0, 0), predict_type='value', missing=nan, validate_features=True, base_margin=None, strict_shape=False)[源代码]
尽可能在原地运行预测,与
predict()
方法不同,原地预测不会缓存预测结果。仅在多个线程中调用
inplace_predict
是安全的且无锁的。但当与其他方法结合使用时,这种安全性不成立。例如,你不能在一个线程中训练增强器,而在另一个线程中执行预测。备注
如果输入数据的设备序号与为助推器配置的序号不匹配,数据将被复制到助推器设备。
booster.set_param({"device": "cuda:0"}) booster.inplace_predict(cupy_array) booster.set_param({"device": "cpu"}) booster.inplace_predict(numpy_array)
Added in version 1.1.0.
- 参数:
data (Any) – 输入数据。
iteration_range (Tuple[int | integer, int | integer]) – 详情请参见
predict()
。predict_type (str) –
value 输出模型预测值。
margin 输出未经转换的原始边距值。
missing (float) – See
xgboost.DMatrix
for details.validate_features (bool) – 详情请参见
xgboost.Booster.predict()
。base_margin (Any) –
See
xgboost.DMatrix
for details.Added in version 1.4.0.
strict_shape (bool) – 详情请参阅
xgboost.Booster.predict()
。 .. versionadded:: 1.4.0
- 返回:
预测 – 预测结果。当输入数据在GPU上时,预测结果存储在一个cupy数组中。
- 返回类型:
numpy.ndarray/cupy.ndarray
- load_config(config)[源代码]
加载由 save_config 返回的配置。
Added in version 1.0.0.
- 参数:
config (str)
- 返回类型:
None
- load_model(fname)[源代码]
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(data, output_margin=False, pred_leaf=False, pred_contribs=False, approx_contribs=False, pred_interactions=False, validate_features=True, training=False, iteration_range=(0, 0), strict_shape=False)[源代码]
使用数据进行预测。除非指定了 iteration_range,否则将使用完整模型,这意味着用户必须对模型进行切片或使用
best_iteration
属性从早期停止返回的最佳模型中获取预测。备注
关于线程安全和此函数输出的摘要等问题,请参阅 预测。
- 参数:
data (DMatrix) – 存储输入的 dmatrix。
output_margin (bool) – 是否输出未经转换的原始边距值。
pred_leaf (bool) – 当此选项开启时,输出将是一个 (nsample, ntrees) 的矩阵,其中每个记录表示每个样本在每棵树中的预测叶节点索引。请注意,树的叶节点索引在每棵树中是唯一的,因此你可能会在树1和树0中都找到叶节点1。
pred_contribs (bool) – 当此值为 True 时,输出将是一个大小为 (nsample, nfeats + 1) 的矩阵,其中每个记录表示该预测的特征贡献(SHAP 值)。所有特征贡献的总和等于预测的原始未转换的边际值。注意最后一列是偏置项。
approx_contribs (bool) – 近似每个特征的贡献。当
pred_contribs
或pred_interactions
设置为 True 时使用。不推荐更改此参数的默认值(False)。pred_interactions (bool) – 当此值为 True 时,输出将是一个大小为 (nsample, nfeats + 1, nfeats + 1) 的矩阵,表示每对特征的 SHAP 交互值。每行(或列)的交互值之和等于相应的 SHAP 值(来自 pred_contribs),整个矩阵的和等于预测的原始未转换的边际值。注意最后一行和最后一列对应于偏置项。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
training (bool) – 预测值是否用于训练。这会影响 dart 增强器,它在训练迭代期间执行丢弃操作,但在推理时使用所有树。如果你想获得带有丢弃的结果,请将此参数设置为 True。此外,在获取自定义目标函数的预测时,此参数也会设置为 true。 .. versionadded:: 1.0.0
iteration_range (Tuple[int | integer, int | integer]) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定 iteration_range=(10, 20),那么只有在这[10, 20)(半开集)轮期间构建的森林用于此次预测。 .. versionadded:: 1.4.0
strict_shape (bool) – 当设置为 True 时,输出形状与是否使用分类无关。对于值和边距预测,输出形状为 (n_samples, n_groups),当不使用多类时,n_groups == 1。默认为 False,在这种情况下,如果未使用多类,输出形状可以是 (n_samples, )。 .. versionadded:: 1.4.0
- 返回:
预测
- 返回类型:
numpy array
- save_model(fname)[源代码]
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- save_raw(raw_format='ubj')[源代码]
将模型保存到内存缓冲区表示中,而不是文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
- 参数:
raw_format (str) – 输出缓冲区的格式。可以是 json、ubj 或 deprecated。
- 返回类型:
An in memory buffer representation of the model
- set_attr(**kwargs)[源代码]
设置 Booster 的属性。
- 参数:
**kwargs (Any | None) – 要设置的属性。将值设置为 None 会删除一个属性。
- 返回类型:
None
- class xgboost.DataIter(cache_prefix=None, release_data=True)[源代码]
基类:
ABC
用户定义数据迭代器的接口。该迭代器便于分布式训练、
QuantileDMatrix
以及使用DMatrix
的外部内存支持。大多数情况下,用户不需要直接与这个类交互。备注
该类使用 data 输入(预测器 X)作为键缓存一些中间结果。不要对具有不同元数据(如 label)的多个批次重复使用 X,必要时请进行复制。
- 参数:
- abstract next(input_data)[源代码]
设置下一批数据。
- 参数:
input_data (Callable) – 一个具有相同数据字段如 data、label 的函数,类似于 xgboost.DMatrix。
- 返回类型:
0 if there’s no more batch, otherwise 1.
- property proxy: _ProxyDMatrix
DMatrix 代理的处理。
学习 API
包含训练例程的训练库。
- xgboost.train(params, dtrain, num_boost_round=10, *, evals=None, obj=None, feval=None, maximize=None, early_stopping_rounds=None, evals_result=None, verbose_eval=True, xgb_model=None, callbacks=None, custom_metric=None)[源代码]
使用给定的参数训练一个增强器。
- 参数:
dtrain (DMatrix) – 待训练的数据。
num_boost_round (int) – 提升迭代的次数。
evals (Sequence[Tuple[DMatrix, str]] | None) – 在训练期间将评估其指标的验证集列表。验证指标将帮助我们跟踪模型的性能。
obj (Callable[[ndarray, DMatrix], Tuple[ndarray, ndarray]] | None) – 自定义目标函数。详情请参阅 自定义目标。
feval (Callable[[ndarray, DMatrix], Tuple[str, float]] | None) –
自 1.6.0 版本弃用: 使用 custom_metric 代替。
maximize (bool | None) – 是否最大化 feval。
early_stopping_rounds (int | None) – 激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次才能继续训练。至少需要一个 evals 中的项目。该方法返回最后一轮的模型(不是最佳模型)。如果需要最佳模型,请使用自定义回调或模型切片。如果 evals 中有多个项目,则将使用最后一个项目进行早停。如果 params 中给定的 eval_metric 参数有多个指标,则将使用最后一个指标进行早停。如果发生早停,模型将有两个额外字段:
bst.best_score
,bst.best_iteration
。evals_result (Dict[str, Dict[str, List[float] | List[Tuple[float, float]]]] | None) – 这个字典存储了监视列表中所有项目的评估结果。例如:如果监视列表包含
[(dtest,'eval'), (dtrain,'train')]
和一个包含('eval_metric': 'logloss')
的参数,那么 evals_result 返回 .. code-block:: python {‘train’: {‘logloss’: [‘0.48253’, ‘0.35953’]}, ‘eval’: {‘logloss’: [‘0.480385’, ‘0.357756’]}}verbose_eval (bool | int | None) – 至少需要一个 evals 中的项目。如果 verbose_eval 为 True,则在每个提升阶段打印验证集上的评估指标。如果 verbose_eval 是一个整数,则在每个给定的 verbose_eval 提升阶段打印验证集上的评估指标。最后提升阶段或通过使用 early_stopping_rounds 找到的提升阶段也会被打印。例如:使用
verbose_eval=4
并且 evals 中至少有一个项目时,评估指标每 4 个提升阶段打印一次,而不是每个提升阶段都打印。xgb_model (str | PathLike | Booster | bytearray | None) – 在训练前加载的Xgb模型(允许训练的继续)。
callbacks (Sequence[TrainingCallback] | None) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. note:
custom_metric (Callable[[ndarray, DMatrix], Tuple[str, float]] | None) –
自定义指标函数。详情请参阅 自定义指标。
- 返回:
助推器
- 返回类型:
a trained booster model
- xgboost.cv(params, dtrain, num_boost_round=10, nfold=3, stratified=False, folds=None, metrics=(), obj=None, feval=None, maximize=None, early_stopping_rounds=None, fpreproc=None, as_pandas=True, verbose_eval=None, show_stdv=True, seed=0, callbacks=None, shuffle=True, custom_metric=None)[源代码]
使用给定参数进行交叉验证。
- 参数:
params (dict) – 助推器参数。
dtrain (DMatrix) – 待训练的数据。
num_boost_round (int) – 提升迭代的次数。
nfold (int) – CV 中的折数。
stratified (bool) – 执行分层抽样。
folds (a KFold or StratifiedKFold instance or list of fold indices) – Sklearn KFolds 或 StratifiedKFolds 对象。或者可以显式传递每个折叠的样本索引。对于
n
折,folds 应该是一个长度为n
的列表,其中每个元组是(in,out)
,其中in
是用于第n
折训练样本的索引列表,out
是用于第n
折测试样本的索引列表。metrics (string or list of strings) – 在计算机视觉中需要关注的评估指标。
obj (Callable[[ndarray, DMatrix], Tuple[ndarray, ndarray]] | None) – 自定义目标函数。详情请参阅 自定义目标。
feval (function) –
自 1.6.0 版本弃用: 使用 custom_metric 代替。
maximize (bool) – 是否最大化 feval。
early_stopping_rounds (int) – 激活早停机制。交叉验证指标(在CV折数上计算的验证指标的平均值)需要在每 early_stopping_rounds 轮中至少提高一次才能继续训练。评估历史记录中的最后一个条目将代表最佳迭代。如果在 params 中给定的 eval_metric 参数中有多个指标,则将使用最后一个指标进行早停。
fpreproc (function) – 预处理函数,接受 (dtrain, dtest, param) 并返回这些参数的转换版本。
as_pandas (bool, default True) – 当安装了 pandas 时返回 pd.DataFrame。如果为 False 或未安装 pandas,则返回 np.ndarray。
verbose_eval (bool, int, or None, default None) – 是否显示进度。如果为 None,则在返回 np.ndarray 时显示进度。如果为 True,则在提升阶段显示进度。如果给定一个整数,则在每个给定的 verbose_eval 提升阶段显示进度。
show_stdv (bool, default True) – 是否在进度中显示标准差。结果不受影响,并且始终包含标准差。
seed (int) – 用于生成折叠的种子(传递给 numpy.random.seed)。
callbacks (Sequence[TrainingCallback] | None) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. note:
shuffle (bool) – 在创建折叠之前打乱数据。
custom_metric (Callable[[ndarray, DMatrix], Tuple[str, float]] | None) –
自定义指标函数。详情请参阅 自定义指标。
- 返回:
评估历史
- 返回类型:
list(string)
Scikit-Learn API
Scikit-Learn 包装器接口用于 XGBoost。
- class xgboost.XGBRegressor(*, objective='reg:squarederror', **kwargs)[源代码]
基类:
XGBModel
,RegressorMixin
XGBoost 回归的 scikit-learn API 实现。更多信息请参见 使用 Scikit-Learn 估计器接口。
- 参数:
grow_policy (Optional[str]) – 树生长策略。 - depthwise: 倾向于在离节点最近的节点进行分割, - lossguide: 倾向于在损失变化最大的节点进行分割。
objective (Union[str, xgboost.sklearn._SklObjWProto, Callable[[Any, Any], Tuple[numpy.ndarray, numpy.ndarray]], NoneType]) – 指定学习任务以及相应的学习目标或自定义目标函数。对于自定义目标,请参阅 自定义目标和评估指标 和 自定义目标和指标 以获取更多信息,以及函数签名的结尾注释。
tree_method (Optional[str]) – 指定要使用的树方法。默认为自动。如果此参数设置为默认,XGBoost 将选择最保守的可用选项。建议从参数文档中研究此选项 树方法
n_jobs (Optional[int]) – 用于运行 xgboost 的并行线程数。当与其他 Scikit-Learn 算法(如网格搜索)一起使用时,您可以选择并行化哪个算法并平衡线程。创建线程争用将显著减慢两个算法。
gamma (Optional[float]) – (min_split_loss) 在树的叶节点上进行进一步分区所需的最小损失减少量。
min_child_weight (Optional[float]) – 子节点中所需的实例权重(Hessian)的最小和。
sampling_method (Optional[str]) – 采样方法。仅由
hist
树方法的 GPU 版本使用。 -uniform
: 均匀选择随机训练实例。 -gradient_based
: 当梯度和 Hessian 较大时,以更高概率选择随机训练实例。(参见 CatBoost)random_state (Union[numpy.random.mtrand.RandomState, numpy.random._generator.Generator, int, NoneType]) – 随机数种子。 .. 注意:: 使用 shotgun updater 的 gblinear booster 是非确定性的,因为它使用了 Hogwild 算法。
monotone_constraints (Union[Dict[str, int], str, NoneType]) – 变量单调性的约束。更多信息请参见 教程。
interaction_constraints (Union[str, List[Tuple[str]], NoneType]) – 表示允许交互的约束条件。约束条件必须以嵌套列表的形式指定,例如
[[0, 1], [2, 3, 4]]
,其中每个内部列表是一组允许相互交互的特征索引。更多信息请参见 教程。importance_type (Optional[str]) – 特征重要性类型用于feature_importances_属性: * 对于树模型,可以是”gain”、”weight”、”cover”、”total_gain”或”total_cover”。 * 对于线性模型,仅定义了”weight”,它是无偏差的归一化系数。
Added in version 2.0.0.
设备序号,可用选项为 cpu、cuda 和 gpu。
feature_types (Optional[Sequence[str]]) –
Added in version 1.7.0.
用于指定特征类型而不构建数据框。详情请参见
DMatrix
。max_cat_to_onehot (Optional[int]) –
Added in version 1.6.0.
备注
此参数为实验性
决定XGBoost是否应使用独热编码进行分类数据分割的阈值。当类别数量小于阈值时,选择独热编码,否则类别将被分割到子节点中。此外,需要设置 enable_categorical 以支持分类特征。详情请参见 分类数据 和 分类特征的参数。
max_cat_threshold (Optional[int]) –
Added in version 1.7.0.
备注
此参数为实验性
每个分割考虑的最大类别数。仅用于基于分区的分割,以防止过拟合。此外,enable_categorical 需要设置为支持分类特征。详情请参见 分类数据 和 分类特征的参数。
multi_strategy (Optional[str]) –
Added in version 2.0.0.
备注
此参数正在开发中。
用于训练多目标模型的策略,包括多目标回归和多类分类。更多信息请参见 多重输出。
one_output_per_tree
: 每个目标一个模型。multi_output_tree
: 使用多目标树。
eval_metric (Union[str, List[str], Callable, NoneType]) –
Added in version 1.6.0.
用于监控训练结果和提前停止的指标。它可以是一个字符串或字符串列表,作为XGBoost中预定义指标的名称(参见doc/parameter.rst),也可以是
sklearn.metrics
中的一个指标,或者是任何其他类似于 sklearn.metrics 的用户定义指标。如果提供了自定义目标,那么自定义指标应实现相应的反向链接函数。
与 scikit-learn 中常用的 scoring 参数不同,当提供一个可调用对象时,它被假定为一个成本函数,默认情况下 XGBoost 将在早停期间最小化结果。
For advanced usage on Early stopping like directly choosing to maximize instead of minimize, see
xgboost.callback.EarlyStopping
.更多信息请参见 自定义目标和评估指标 和 自定义目标和指标。
from sklearn.datasets import load_diabetes from sklearn.metrics import mean_absolute_error X, y = load_diabetes(return_X_y=True) reg = xgb.XGBRegressor( tree_method="hist", eval_metric=mean_absolute_error, ) reg.fit(X, y, eval_set=[(X, y)])
early_stopping_rounds (Optional[int]) –
Added in version 1.6.0.
激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次以继续训练。这需要在
fit()
中至少有一个 eval_set 项。如果发生早停,模型将有两个额外的属性:
best_score
和best_iteration
。这些属性用于predict()
和apply()
方法,以在推理过程中确定最佳的树的数量。如果用户想要访问完整的模型(包括早停后构建的树),他们可以在这些推理方法中指定 iteration_range。此外,其他实用工具如模型绘图也可以使用整个模型。如果你倾向于在 best_iteration 之后丢弃树,可以考虑使用回调函数
xgboost.callback.EarlyStopping
。如果 eval_set 中有多个项目,最后一个条目将用于提前停止。如果 eval_metric 中有多个指标,最后一个指标将用于提前停止。
callbacks (Optional[List[xgboost.callback.TrainingCallback]]) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. 注意:
kwargs (Optional[Any]) – XGBoost Booster对象的关键字参数。参数的完整文档可以在 这里 找到。尝试通过构造函数参数和 **kwargs 字典同时设置参数将导致 TypeError。
- apply(X, iteration_range=None)
返回每个样本在每棵树上的预测叶子。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。
- property coef_: ndarray
Coefficients 属性
备注
系数仅针对线性学习器定义
系数仅在选择线性模型作为基础学习器时定义(booster=gblinear)。对于其他基础学习器类型,如树学习器(booster=gbtree),则未定义。
- 返回:
coef_
- 返回类型:
形状为
[n_features]
或[n_classes, n_features]
的数组
- evals_result()
返回评估结果。
如果将 eval_set 传递给
fit()
函数,你可以调用evals_result()
来获取所有传递的 eval_sets 的评估结果。当 eval_metric 也被传递给fit()
函数时,evals_result 将包含传递给fit()
函数的 eval_metrics。返回的评估结果是一个字典:
{'validation_0': {'logloss': ['0.604835', '0.531479']}, 'validation_1': {'logloss': ['0.41965', '0.17686']}}
- 返回类型:
evals_result
- property feature_importances_: ndarray
特征重要性属性,返回结果取决于 importance_type 参数。当模型使用多类/多标签/多目标数据集训练时,特征重要性是“平均”所有目标的。“平均”是基于重要性类型定义的。例如,如果重要性类型是“total_gain”,那么分数是所有树中每个分裂的损失变化的总和。
- 返回:
feature_importances_ (形状为
[n_features]
的数组,多类情况除外)线性模型,返回形状为 (n_features, n_classes) 的数组
- fit(X, y, *, sample_weight=None, base_margin=None, eval_set=None, verbose=True, xgb_model=None, sample_weight_eval_set=None, base_margin_eval_set=None, feature_weights=None)
拟合梯度提升模型。
请注意,多次调用
fit()
将导致模型对象从头开始重新拟合。要从之前的检查点恢复训练,请显式传递xgb_model
参数。- 参数:
X (Any) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。当
tree_method
设置为hist
时,内部将使用QuantileDMatrix
而不是DMatrix
以节省内存。然而,当输入数据的设备与算法不匹配时,这会影响性能。例如,如果输入是CPU上的numpy数组,但训练使用cuda
,则数据首先在CPU上处理,然后传输到GPU。y (Any) – 标签
sample_weight (Any | None) – 实例权重
eval_set (Sequence[Tuple[Any, Any]] | None) – 用于作为验证集的 (X, y) 元组对列表,将计算这些验证集的指标。验证指标将帮助我们跟踪模型的性能。
verbose (bool | int | None) – 如果 verbose 为 True 并且使用了评估集,验证集上的评估指标会在每次提升阶段打印到标准输出。如果 verbose 是一个整数,评估指标会在每 verbose 次提升阶段打印。最后一次提升阶段或通过 early_stopping_rounds 找到的提升阶段也会被打印。
xgb_model (Booster | XGBModel | str | None) – 存储的XGBoost模型文件名或’Booster’实例 XGBoost模型,在训练前加载(允许训练继续)。
sample_weight_eval_set (Sequence[Any] | None) – 形式为 [L_1, L_2, …, L_n] 的列表,其中每个 L_i 是一个类似数组的对象,存储第 i 个验证集的实例权重。
base_margin_eval_set (Sequence[Any] | None) – 形式为 [M_1, M_2, …, M_n] 的列表,其中每个 M_i 是一个存储第 i 个验证集的基边界的类似数组的对象。
feature_weights (Any | None) – 每个特征的权重,定义了在使用colsample时每个特征被选中的概率。所有值必须大于0,否则会抛出 ValueError。
- 返回类型:
XGBModel
- get_booster()
获取此模型的底层 xgboost Booster。
当未调用 fit 时,这将引发异常
- 返回:
booster
- 返回类型:
a xgboost booster of underlying model
- get_metadata_routing()
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回:
routing – 一个封装了路由信息的
MetadataRequest
。- 返回类型:
MetadataRequest
- property intercept_: ndarray
截距(偏差)属性
对于基于树的模型,返回值是 base_score。
- 返回:
拦截_
- 返回类型:
形状为
(1,)
或[n_classes]
的数组
- load_model(fname)
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(X, output_margin=False, validate_features=True, base_margin=None, iteration_range=None)
使用 X 进行预测。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (Any) – 用于预测的数据。
output_margin (bool) – 是否输出未经转换的原始边距值。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定
iteration_range=(10, 20)
,那么只有在此期间[10, 20)(半开集)轮次内构建的森林用于此次预测。 .. versionadded:: 1.4.0
- 返回类型:
prediction
- save_model(fname)
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- 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 (array-like of shape (n_samples, n_features)) – 测试样本。对于某些估计器,这可能是一个预计算的核矩阵,或者是一个形状为
(n_samples, n_samples_fitted)
的通用对象列表,其中n_samples_fitted
是用于估计器拟合的样本数量。y (array-like of shape (n_samples,) or (n_samples, n_outputs)) – X 的真值。
sample_weight (array-like of shape (n_samples,), default=None) – 样本权重。
- 返回:
score –
self.predict(X)
相对于 y 的 \(R^2\)。- 返回类型:
备注
在调用回归器的
score
时使用的 \(R^2\) 评分,从版本 0.23 开始使用multioutput='uniform_average'
以保持与r2_score()
的默认值一致。这会影响所有多输出回归器的score
方法(除了MultiOutputRegressor
)。
- set_fit_request(*, base_margin='$UNCHANGED$', base_margin_eval_set='$UNCHANGED$', eval_set='$UNCHANGED$', feature_weights='$UNCHANGED$', sample_weight='$UNCHANGED$', sample_weight_eval_set='$UNCHANGED$', verbose='$UNCHANGED$', xgb_model='$UNCHANGED$')
传递给
fit
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给fit
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给fit
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin
参数的元数据路由。base_margin_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin_eval_set
参数的元数据路由。eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_set
参数的元数据路由。feature_weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中feature_weights
参数的元数据路由。sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight
参数的元数据路由。sample_weight_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight_eval_set
参数的元数据路由。verbose (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中verbose
参数的元数据路由。xgb_model (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中xgb_model
参数的元数据路由。self (XGBRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_params(**params)
设置此估计器的参数。修改了 sklearn 方法以允许未知的 kwargs。这允许使用在 sklearn 网格搜索中未定义为成员变量的 xgboost 参数的完整范围。
- 返回类型:
self
- 参数:
params (Any)
- set_predict_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', output_margin='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict
。如果未提供元数据,则忽略请求。False
: 不请求元数据,元估计器不会将其传递给predict
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中iteration_range
参数的元数据路由。output_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中output_margin
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中validate_features
参数的元数据路由。self (XGBRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_score_request(*, sample_weight='$UNCHANGED$')
传递给
score
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给score
。如果未提供元数据,则忽略请求。False
: 不需要元数据,元估计器不会将其传递给score
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
score
方法中sample_weight
参数的元数据路由。self (XGBRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- class xgboost.XGBClassifier(*, objective='binary:logistic', **kwargs)[源代码]
基类:
XGBModel
,ClassifierMixin
XGBoost 分类的 scikit-learn API 实现。更多信息请参见 使用 Scikit-Learn 估计器接口。
- 参数:
n_estimators (Optional[int]) – 提升轮数。
grow_policy (Optional[str]) – 树生长策略。 - depthwise: 倾向于在离节点最近的节点进行分割, - lossguide: 倾向于在损失变化最大的节点进行分割。
objective (Union[str, xgboost.sklearn._SklObjWProto, Callable[[Any, Any], Tuple[numpy.ndarray, numpy.ndarray]], NoneType]) – 指定学习任务以及相应的学习目标或自定义目标函数。对于自定义目标,请参阅 自定义目标和评估指标 和 自定义目标和指标 以获取更多信息,以及函数签名的结尾注释。
tree_method (Optional[str]) – 指定要使用的树方法。默认为自动。如果此参数设置为默认,XGBoost 将选择最保守的可用选项。建议从参数文档中研究此选项 树方法
n_jobs (Optional[int]) – 用于运行 xgboost 的并行线程数。当与其他 Scikit-Learn 算法(如网格搜索)一起使用时,您可以选择并行化哪个算法并平衡线程。创建线程争用将显著减慢两个算法。
gamma (Optional[float]) – (min_split_loss) 在树的叶节点上进行进一步分区所需的最小损失减少量。
min_child_weight (Optional[float]) – 子节点中所需的实例权重(Hessian)的最小和。
sampling_method (Optional[str]) – 采样方法。仅由
hist
树方法的 GPU 版本使用。 -uniform
: 均匀选择随机训练实例。 -gradient_based
: 当梯度和 Hessian 较大时,以更高概率选择随机训练实例。(参见 CatBoost)random_state (Union[numpy.random.mtrand.RandomState, numpy.random._generator.Generator, int, NoneType]) – 随机数种子。 .. 注意:: 使用 shotgun updater 的 gblinear booster 是非确定性的,因为它使用了 Hogwild 算法。
monotone_constraints (Union[Dict[str, int], str, NoneType]) – 变量单调性的约束。更多信息请参见 教程。
interaction_constraints (Union[str, List[Tuple[str]], NoneType]) – 表示允许交互的约束条件。约束条件必须以嵌套列表的形式指定,例如
[[0, 1], [2, 3, 4]]
,其中每个内部列表是一组允许相互交互的特征索引。更多信息请参见 教程。importance_type (Optional[str]) – 特征重要性类型用于feature_importances_属性: * 对于树模型,可以是”gain”、”weight”、”cover”、”total_gain”或”total_cover”。 * 对于线性模型,仅定义了”weight”,它是无偏差的归一化系数。
Added in version 2.0.0.
设备序号,可用选项为 cpu、cuda 和 gpu。
feature_types (Optional[Sequence[str]]) –
Added in version 1.7.0.
用于指定特征类型而不构建数据框。详情请参见
DMatrix
。max_cat_to_onehot (Optional[int]) –
Added in version 1.6.0.
备注
此参数为实验性
决定XGBoost是否应使用独热编码进行分类数据分割的阈值。当类别数量小于阈值时,选择独热编码,否则类别将被分割到子节点中。此外,需要设置 enable_categorical 以支持分类特征。详情请参见 分类数据 和 分类特征的参数。
max_cat_threshold (Optional[int]) –
Added in version 1.7.0.
备注
此参数为实验性
每个分割考虑的最大类别数。仅用于基于分区的分割,以防止过拟合。此外,enable_categorical 需要设置为支持分类特征。详情请参见 分类数据 和 分类特征的参数。
multi_strategy (Optional[str]) –
Added in version 2.0.0.
备注
此参数正在开发中。
用于训练多目标模型的策略,包括多目标回归和多类分类。更多信息请参见 多重输出。
one_output_per_tree
: 每个目标一个模型。multi_output_tree
: 使用多目标树。
eval_metric (Union[str, List[str], Callable, NoneType]) –
Added in version 1.6.0.
用于监控训练结果和提前停止的指标。它可以是一个字符串或字符串列表,作为XGBoost中预定义指标的名称(参见doc/parameter.rst),也可以是
sklearn.metrics
中的一个指标,或者是任何其他类似于 sklearn.metrics 的用户定义指标。如果提供了自定义目标,那么自定义指标应实现相应的反向链接函数。
与 scikit-learn 中常用的 scoring 参数不同,当提供一个可调用对象时,它被假定为一个成本函数,默认情况下 XGBoost 将在早停期间最小化结果。
For advanced usage on Early stopping like directly choosing to maximize instead of minimize, see
xgboost.callback.EarlyStopping
.更多信息请参见 自定义目标和评估指标 和 自定义目标和指标。
from sklearn.datasets import load_diabetes from sklearn.metrics import mean_absolute_error X, y = load_diabetes(return_X_y=True) reg = xgb.XGBRegressor( tree_method="hist", eval_metric=mean_absolute_error, ) reg.fit(X, y, eval_set=[(X, y)])
early_stopping_rounds (Optional[int]) –
Added in version 1.6.0.
激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次以继续训练。这需要在
fit()
中至少有一个 eval_set 项。如果发生早停,模型将有两个额外的属性:
best_score
和best_iteration
。这些属性用于predict()
和apply()
方法,以在推理过程中确定最佳的树的数量。如果用户想要访问完整的模型(包括早停后构建的树),他们可以在这些推理方法中指定 iteration_range。此外,其他实用工具如模型绘图也可以使用整个模型。如果你倾向于在 best_iteration 之后丢弃树,可以考虑使用回调函数
xgboost.callback.EarlyStopping
。如果 eval_set 中有多个项目,最后一个条目将用于提前停止。如果 eval_metric 中有多个指标,最后一个指标将用于提前停止。
callbacks (Optional[List[xgboost.callback.TrainingCallback]]) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. 注意:
kwargs (Optional[Any]) – XGBoost Booster对象的关键字参数。参数的完整文档可以在 这里 找到。尝试通过构造函数参数和 **kwargs 字典同时设置参数将导致 TypeError。
- apply(X, iteration_range=None)
返回每个样本在每棵树上的预测叶子。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。
- property coef_: ndarray
Coefficients 属性
备注
系数仅针对线性学习器定义
系数仅在选择线性模型作为基础学习器时定义(booster=gblinear)。对于其他基础学习器类型,如树学习器(booster=gbtree),则未定义。
- 返回:
coef_
- 返回类型:
形状为
[n_features]
或[n_classes, n_features]
的数组
- evals_result()
返回评估结果。
如果将 eval_set 传递给
fit()
函数,你可以调用evals_result()
来获取所有传递的 eval_sets 的评估结果。当 eval_metric 也被传递给fit()
函数时,evals_result 将包含传递给fit()
函数的 eval_metrics。返回的评估结果是一个字典:
{'validation_0': {'logloss': ['0.604835', '0.531479']}, 'validation_1': {'logloss': ['0.41965', '0.17686']}}
- 返回类型:
evals_result
- property feature_importances_: ndarray
特征重要性属性,返回结果取决于 importance_type 参数。当模型使用多类/多标签/多目标数据集训练时,特征重要性是“平均”所有目标的。“平均”是基于重要性类型定义的。例如,如果重要性类型是“total_gain”,那么分数是所有树中每个分裂的损失变化的总和。
- 返回:
feature_importances_ (形状为
[n_features]
的数组,多类情况除外)线性模型,返回形状为 (n_features, n_classes) 的数组
- fit(X, y, *, sample_weight=None, base_margin=None, eval_set=None, verbose=True, xgb_model=None, sample_weight_eval_set=None, base_margin_eval_set=None, feature_weights=None)[源代码]
拟合梯度提升分类器。
请注意,多次调用
fit()
将导致模型对象从头开始重新拟合。要从之前的检查点恢复训练,请显式传递xgb_model
参数。- 参数:
X (Any) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。当
tree_method
设置为hist
时,内部将使用QuantileDMatrix
而不是DMatrix
以节省内存。然而,当输入数据的设备与算法不匹配时,这会影响性能。例如,如果输入是CPU上的numpy数组,但训练使用cuda
,则数据首先在CPU上处理,然后传输到GPU。y (Any) – 标签
sample_weight (Any | None) – 实例权重
eval_set (Sequence[Tuple[Any, Any]] | None) – 用于作为验证集的 (X, y) 元组对列表,将计算这些验证集的指标。验证指标将帮助我们跟踪模型的性能。
verbose (bool | int | None) – 如果 verbose 为 True 并且使用了评估集,验证集上的评估指标会在每次提升阶段打印到标准输出。如果 verbose 是一个整数,评估指标会在每 verbose 次提升阶段打印。最后一次提升阶段或通过 early_stopping_rounds 找到的提升阶段也会被打印。
xgb_model (Booster | str | XGBModel | None) – 存储的XGBoost模型文件名或’Booster’实例 XGBoost模型,在训练前加载(允许训练继续)。
sample_weight_eval_set (Sequence[Any] | None) – 形式为 [L_1, L_2, …, L_n] 的列表,其中每个 L_i 是一个类似数组的对象,存储第 i 个验证集的实例权重。
base_margin_eval_set (Sequence[Any] | None) – 形式为 [M_1, M_2, …, M_n] 的列表,其中每个 M_i 是一个存储第 i 个验证集的基边界的类似数组的对象。
feature_weights (Any | None) – 每个特征的权重,定义了在使用colsample时每个特征被选中的概率。所有值必须大于0,否则会抛出 ValueError。
- 返回类型:
- get_booster()
获取此模型的底层 xgboost Booster。
当未调用 fit 时,这将引发异常
- 返回:
booster
- 返回类型:
a xgboost booster of underlying model
- get_metadata_routing()
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回:
routing – 一个封装了路由信息的
MetadataRequest
。- 返回类型:
MetadataRequest
- property intercept_: ndarray
截距(偏差)属性
对于基于树的模型,返回值是 base_score。
- 返回:
拦截_
- 返回类型:
形状为
(1,)
或[n_classes]
的数组
- load_model(fname)
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(X, output_margin=False, validate_features=True, base_margin=None, iteration_range=None)[源代码]
使用 X 进行预测。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (Any) – 用于预测的数据。
output_margin (bool) – 是否输出未经转换的原始边距值。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定
iteration_range=(10, 20)
,那么只有在此期间[10, 20)(半开集)轮次内构建的森林用于此次预测。 .. versionadded:: 1.4.0
- 返回类型:
prediction
- predict_proba(X, validate_features=True, base_margin=None, iteration_range=None)[源代码]
预测每个 X 样本属于给定类别的概率。如果模型是使用早停法训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (Any) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定在预测中使用哪一层树。例如,如果一个随机森林被训练了100轮。指定 iteration_range=(10, 20),那么只有在这 [10, 20)(半开区间)轮中构建的森林被用于此次预测。
- 返回:
一个形状为 (n_samples, n_classes) 的 numpy 数组,表示每个数据样本属于某一类的概率。
- 返回类型:
prediction
- save_model(fname)
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- score(X, y, sample_weight=None)
返回给定测试数据和标签的平均准确率。
在多标签分类中,这是子集准确率,这是一个严格的度量标准,因为你要求每个样本的每个标签集都被正确预测。
- 参数:
X (array-like of shape (n_samples, n_features)) – 测试样本。
y (array-like of shape (n_samples,) or (n_samples, n_outputs)) – X 的真实标签。
sample_weight (array-like of shape (n_samples,), default=None) – 样本权重。
- 返回:
score –
self.predict(X)
相对于 y 的平均准确率。- 返回类型:
- set_fit_request(*, base_margin='$UNCHANGED$', base_margin_eval_set='$UNCHANGED$', eval_set='$UNCHANGED$', feature_weights='$UNCHANGED$', sample_weight='$UNCHANGED$', sample_weight_eval_set='$UNCHANGED$', verbose='$UNCHANGED$', xgb_model='$UNCHANGED$')
传递给
fit
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给fit
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给fit
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin
参数的元数据路由。base_margin_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin_eval_set
参数的元数据路由。eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_set
参数的元数据路由。feature_weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中feature_weights
参数的元数据路由。sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight
参数的元数据路由。sample_weight_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight_eval_set
参数的元数据路由。verbose (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中verbose
参数的元数据路由。xgb_model (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中xgb_model
参数的元数据路由。self (XGBClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_params(**params)
设置此估计器的参数。修改了 sklearn 方法以允许未知的 kwargs。这允许使用在 sklearn 网格搜索中未定义为成员变量的 xgboost 参数的完整范围。
- 返回类型:
self
- 参数:
params (Any)
- set_predict_proba_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict_proba
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict_proba
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给predict_proba
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中iteration_range
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中的validate_features
参数的元数据路由。self (XGBClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_predict_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', output_margin='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict
。如果未提供元数据,则忽略请求。False
: 不请求元数据,元估计器不会将其传递给predict
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中iteration_range
参数的元数据路由。output_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中output_margin
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中validate_features
参数的元数据路由。self (XGBClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_score_request(*, sample_weight='$UNCHANGED$')
传递给
score
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给score
。如果未提供元数据,则忽略请求。False
: 不需要元数据,元估计器不会将其传递给score
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
score
方法中sample_weight
参数的元数据路由。self (XGBClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- class xgboost.XGBRanker(*, objective='rank:ndcg', **kwargs)[源代码]
基类:
XGBModel
,XGBRankerMixIn
XGBoost 排名的 Scikit-Learn API 实现。
请参阅 Learning to Rank 以获取介绍。
更多信息请参见 使用 Scikit-Learn 估计器接口。
- 参数:
grow_policy (Optional[str]) – 树生长策略。 - depthwise: 倾向于在离节点最近的节点进行分割, - lossguide: 倾向于在损失变化最大的节点进行分割。
objective (Union[str, xgboost.sklearn._SklObjWProto, Callable[[Any, Any], Tuple[numpy.ndarray, numpy.ndarray]], NoneType]) – 指定学习任务以及相应的学习目标或自定义目标函数。对于自定义目标,请参阅 自定义目标和评估指标 和 自定义目标和指标 以获取更多信息,以及函数签名的结尾注释。
tree_method (Optional[str]) – 指定要使用的树方法。默认为自动。如果此参数设置为默认,XGBoost 将选择最保守的可用选项。建议从参数文档中研究此选项 树方法
n_jobs (Optional[int]) – 用于运行 xgboost 的并行线程数。当与其他 Scikit-Learn 算法(如网格搜索)一起使用时,您可以选择并行化哪个算法并平衡线程。创建线程争用将显著减慢两个算法。
gamma (Optional[float]) – (min_split_loss) 在树的叶节点上进行进一步分区所需的最小损失减少量。
min_child_weight (Optional[float]) – 子节点中所需的实例权重(Hessian)的最小和。
sampling_method (Optional[str]) – 采样方法。仅由
hist
树方法的 GPU 版本使用。 -uniform
: 均匀选择随机训练实例。 -gradient_based
: 当梯度和 Hessian 较大时,以更高概率选择随机训练实例。(参见 CatBoost)random_state (Union[numpy.random.mtrand.RandomState, numpy.random._generator.Generator, int, NoneType]) – 随机数种子。 .. 注意:: 使用 shotgun updater 的 gblinear booster 是非确定性的,因为它使用了 Hogwild 算法。
monotone_constraints (Union[Dict[str, int], str, NoneType]) – 变量单调性的约束。更多信息请参见 教程。
interaction_constraints (Union[str, List[Tuple[str]], NoneType]) – 表示允许交互的约束条件。约束条件必须以嵌套列表的形式指定,例如
[[0, 1], [2, 3, 4]]
,其中每个内部列表是一组允许相互交互的特征索引。更多信息请参见 教程。importance_type (Optional[str]) – 特征重要性类型用于feature_importances_属性: * 对于树模型,可以是”gain”、”weight”、”cover”、”total_gain”或”total_cover”。 * 对于线性模型,仅定义了”weight”,它是无偏差的归一化系数。
Added in version 2.0.0.
设备序号,可用选项为 cpu、cuda 和 gpu。
feature_types (Optional[Sequence[str]]) –
Added in version 1.7.0.
用于指定特征类型而不构建数据框。详情请参见
DMatrix
。max_cat_to_onehot (Optional[int]) –
Added in version 1.6.0.
备注
此参数为实验性
决定XGBoost是否应使用独热编码进行分类数据分割的阈值。当类别数量小于阈值时,选择独热编码,否则类别将被分割到子节点中。此外,需要设置 enable_categorical 以支持分类特征。详情请参见 分类数据 和 分类特征的参数。
max_cat_threshold (Optional[int]) –
Added in version 1.7.0.
备注
此参数为实验性
每个分割考虑的最大类别数。仅用于基于分区的分割,以防止过拟合。此外,enable_categorical 需要设置为支持分类特征。详情请参见 分类数据 和 分类特征的参数。
multi_strategy (Optional[str]) –
Added in version 2.0.0.
备注
此参数正在开发中。
用于训练多目标模型的策略,包括多目标回归和多类分类。更多信息请参见 多重输出。
one_output_per_tree
: 每个目标一个模型。multi_output_tree
: 使用多目标树。
eval_metric (Union[str, List[str], Callable, NoneType]) –
Added in version 1.6.0.
用于监控训练结果和提前停止的指标。它可以是一个字符串或字符串列表,作为XGBoost中预定义指标的名称(参见doc/parameter.rst),也可以是
sklearn.metrics
中的一个指标,或者是任何其他类似于 sklearn.metrics 的用户定义指标。如果提供了自定义目标,那么自定义指标应实现相应的反向链接函数。
与 scikit-learn 中常用的 scoring 参数不同,当提供一个可调用对象时,它被假定为一个成本函数,默认情况下 XGBoost 将在早停期间最小化结果。
For advanced usage on Early stopping like directly choosing to maximize instead of minimize, see
xgboost.callback.EarlyStopping
.更多信息请参见 自定义目标和评估指标 和 自定义目标和指标。
from sklearn.datasets import load_diabetes from sklearn.metrics import mean_absolute_error X, y = load_diabetes(return_X_y=True) reg = xgb.XGBRegressor( tree_method="hist", eval_metric=mean_absolute_error, ) reg.fit(X, y, eval_set=[(X, y)])
early_stopping_rounds (Optional[int]) –
Added in version 1.6.0.
激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次以继续训练。这需要在
fit()
中至少有一个 eval_set 项。如果发生早停,模型将有两个额外的属性:
best_score
和best_iteration
。这些属性用于predict()
和apply()
方法,以在推理过程中确定最佳的树的数量。如果用户想要访问完整的模型(包括早停后构建的树),他们可以在这些推理方法中指定 iteration_range。此外,其他实用工具如模型绘图也可以使用整个模型。如果你倾向于在 best_iteration 之后丢弃树,可以考虑使用回调函数
xgboost.callback.EarlyStopping
。如果 eval_set 中有多个项目,最后一个条目将用于提前停止。如果 eval_metric 中有多个指标,最后一个指标将用于提前停止。
callbacks (Optional[List[xgboost.callback.TrainingCallback]]) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. 注意:
kwargs (Optional[Any]) – XGBoost Booster对象的关键字参数。参数的完整文档可以在:doc:`这里 </parameter>`找到。尝试通过构造函数参数和**kwargs字典同时设置参数将导致TypeError。
- apply(X, iteration_range=None)[源代码]
返回每个样本在每棵树上的预测叶子。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。
- property coef_: ndarray
Coefficients 属性
备注
系数仅针对线性学习器定义
系数仅在选择线性模型作为基础学习器时定义(booster=gblinear)。对于其他基础学习器类型,如树学习器(booster=gbtree),则未定义。
- 返回:
coef_
- 返回类型:
形状为
[n_features]
或[n_classes, n_features]
的数组
- evals_result()
返回评估结果。
如果将 eval_set 传递给
fit()
函数,你可以调用evals_result()
来获取所有传递的 eval_sets 的评估结果。当 eval_metric 也被传递给fit()
函数时,evals_result 将包含传递给fit()
函数的 eval_metrics。返回的评估结果是一个字典:
{'validation_0': {'logloss': ['0.604835', '0.531479']}, 'validation_1': {'logloss': ['0.41965', '0.17686']}}
- 返回类型:
evals_result
- property feature_importances_: ndarray
特征重要性属性,返回结果取决于 importance_type 参数。当模型使用多类/多标签/多目标数据集训练时,特征重要性是“平均”所有目标的。“平均”是基于重要性类型定义的。例如,如果重要性类型是“total_gain”,那么分数是所有树中每个分裂的损失变化的总和。
- 返回:
feature_importances_ (形状为
[n_features]
的数组,多类情况除外)线性模型,返回形状为 (n_features, n_classes) 的数组
- fit(X, y, *, group=None, qid=None, sample_weight=None, base_margin=None, eval_set=None, eval_group=None, eval_qid=None, verbose=False, xgb_model=None, sample_weight_eval_set=None, base_margin_eval_set=None, feature_weights=None)[源代码]
拟合梯度提升排序器
请注意,多次调用
fit()
将导致模型对象从头开始重新拟合。要从之前的检查点恢复训练,请显式传递xgb_model
参数。- 参数:
X (Any) – 功能矩阵。有关支持的类型列表,请参阅 各种 XGBoost 函数支持的数据结构 。当这是一个
pandas.DataFrame
或cudf.DataFrame
时,它可能包含一个名为qid
的特殊列,用于指定查询索引。使用特殊列与使用 qid 参数相同,只是它与 sklearn 实用函数(如sklearn.model_selection.cross_validation()
)兼容。同样的约定适用于XGBRanker.score()
和XGBRanker.predict()
。 +—–+—————-+—————-+ | qid | feat_0 | feat_1 | +—–+—————-+—————-+ | 0 | \(x_{00}\) | \(x_{01}\) | +—–+—————-+—————-+ | 1 | \(x_{10}\) | \(x_{11}\) | +—–+—————-+—————-+ | 1 | \(x_{20}\) | \(x_{21}\) | +—–+—————-+—————-+ 当tree_method
设置为hist
时,内部将使用QuantileDMatrix
而不是DMatrix
以节省内存。然而,当输入数据的设备与算法不匹配时,这会影响性能。例如,如果输入是 CPU 上的 numpy 数组,但训练使用cuda
,则数据首先在 CPU 上处理,然后传输到 GPU。y (Any) – 标签
group (Any | None) – 训练数据中每个查询组的大小。应该有与训练数据中查询组数量相同的元素。如果设置为 None,则用户必须提供 qid。
qid (Any | None) – 每个训练样本的查询ID。应具有n_samples的大小。如果设置为None,则用户必须提供组或X中的特殊列。
sample_weight (Any | None) –
查询组权重
备注
权重是针对排名任务的每个组别
在排序任务中,每个查询组/ID分配一个权重(而不是每个数据点)。这是因为我们只关心每个组内数据点的相对顺序,因此为单个数据点分配权重是没有意义的。
eval_set (Sequence[Tuple[Any, Any]] | None) – 用于作为验证集的 (X, y) 元组对列表,将计算这些验证集的指标。验证指标将帮助我们跟踪模型的性能。
eval_group (Sequence[Any] | None) – 一个列表,其中
eval_group[i]
是包含 eval_set 中第i
对所有查询组大小的列表。eval_qid (Sequence[Any] | None) – 一个列表,其中
eval_qid[i]
是包含 eval_set 中第i
对的查询 ID 的数组。X 中的特殊列约定同样适用于验证数据集。verbose (bool | int | None) – 如果 verbose 为 True 并且使用了评估集,验证集上的评估指标会在每次提升阶段打印到标准输出。如果 verbose 是一个整数,评估指标会在每 verbose 次提升阶段打印。最后一次提升阶段或通过 early_stopping_rounds 找到的提升阶段也会被打印。
xgb_model (Booster | str | XGBModel | None) – 存储的XGBoost模型文件名或’Booster’实例 XGBoost模型,在训练前加载(允许训练继续)。
sample_weight_eval_set (Sequence[Any] | None) – 形式为 [L_1, L_2, …, L_n] 的列表,其中每个 L_i 是第 i 个验证集上的组权重列表。 .. 注意:: 权重是按组分配的,用于排名任务 在排名任务中,每个查询组分配一个权重(而不是每个数据点)。这是因为我们只关心每个组内数据点的相对顺序,因此为单个数据点分配权重是没有意义的。
base_margin_eval_set (Sequence[Any] | None) – 形式为 [M_1, M_2, …, M_n] 的列表,其中每个 M_i 是一个存储第 i 个验证集的基边界的类似数组的对象。
feature_weights (Any | None) – 每个特征的权重,定义了在使用colsample时每个特征被选中的概率。所有值必须大于0,否则会抛出 ValueError。
- 返回类型:
- get_booster()
获取此模型的底层 xgboost Booster。
当未调用 fit 时,这将引发异常
- 返回:
booster
- 返回类型:
a xgboost booster of underlying model
- get_metadata_routing()
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回:
routing – 一个封装了路由信息的
MetadataRequest
。- 返回类型:
MetadataRequest
- property intercept_: ndarray
截距(偏差)属性
对于基于树的模型,返回值是 base_score。
- 返回:
拦截_
- 返回类型:
形状为
(1,)
或[n_classes]
的数组
- load_model(fname)
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(X, output_margin=False, validate_features=True, base_margin=None, iteration_range=None)[源代码]
使用 X 进行预测。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (Any) – 用于预测的数据。
output_margin (bool) – 是否输出未经转换的原始边距值。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定
iteration_range=(10, 20)
,那么只有在此期间[10, 20)(半开集)轮次内构建的森林用于此次预测。 .. versionadded:: 1.4.0
- 返回类型:
prediction
- save_model(fname)
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- score(X, y)[源代码]
使用最后一个评估指标对数据进行评分。如果模型是使用早停训练的,那么会自动使用
best_iteration
。- 参数:
X (Union[pd.DataFrame, cudf.DataFrame]) – 功能矩阵。一个带有特殊 qid 列的 DataFrame。
y (Any) – 标签
- 返回:
排名器第一个评估指标的结果。
- 返回类型:
score
- set_fit_request(*, base_margin='$UNCHANGED$', base_margin_eval_set='$UNCHANGED$', eval_group='$UNCHANGED$', eval_qid='$UNCHANGED$', eval_set='$UNCHANGED$', feature_weights='$UNCHANGED$', group='$UNCHANGED$', qid='$UNCHANGED$', sample_weight='$UNCHANGED$', sample_weight_eval_set='$UNCHANGED$', verbose='$UNCHANGED$', xgb_model='$UNCHANGED$')
传递给
fit
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给fit
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给fit
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin
参数的元数据路由。base_margin_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin_eval_set
参数的元数据路由。eval_group (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
中eval_group
参数的元数据路由。eval_qid (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_qid
参数的元数据路由。eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_set
参数的元数据路由。feature_weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中feature_weights
参数的元数据路由。group (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
中group
参数的元数据路由。qid (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
中qid
参数的元数据路由。sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight
参数的元数据路由。sample_weight_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight_eval_set
参数的元数据路由。verbose (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中verbose
参数的元数据路由。xgb_model (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中xgb_model
参数的元数据路由。self (XGBRanker)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_params(**params)
设置此估计器的参数。修改了 sklearn 方法以允许未知的 kwargs。这允许使用在 sklearn 网格搜索中未定义为成员变量的 xgboost 参数的完整范围。
- 返回类型:
self
- 参数:
params (Any)
- set_predict_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', output_margin='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict
。如果未提供元数据,则忽略请求。False
: 不请求元数据,元估计器不会将其传递给predict
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中iteration_range
参数的元数据路由。output_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中output_margin
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中validate_features
参数的元数据路由。self (XGBRanker)
- 返回:
self – 更新后的对象。
- 返回类型:
- class xgboost.XGBRFRegressor(*, learning_rate=1.0, subsample=0.8, colsample_bynode=0.8, reg_lambda=1e-05, **kwargs)[源代码]
基类:
XGBRegressor
XGBoost 随机森林回归的 scikit-learn API。更多信息请参见 使用 Scikit-Learn 估计器接口。
- 参数:
n_estimators (Optional[int]) – 随机森林中拟合的树的数量。
grow_policy (Optional[str]) – 树生长策略。 - depthwise: 倾向于在离节点最近的节点进行分割, - lossguide: 倾向于在损失变化最大的节点进行分割。
objective (Union[str, xgboost.sklearn._SklObjWProto, Callable[[Any, Any], Tuple[numpy.ndarray, numpy.ndarray]], NoneType]) – 指定学习任务以及相应的学习目标或自定义目标函数。对于自定义目标,请参阅 自定义目标和评估指标 和 自定义目标和指标 以获取更多信息,以及函数签名的结尾注释。
tree_method (Optional[str]) – 指定要使用的树方法。默认为自动。如果此参数设置为默认,XGBoost 将选择最保守的可用选项。建议从参数文档中研究此选项 树方法
n_jobs (Optional[int]) – 用于运行 xgboost 的并行线程数。当与其他 Scikit-Learn 算法(如网格搜索)一起使用时,您可以选择并行化哪个算法并平衡线程。创建线程争用将显著减慢两个算法。
gamma (Optional[float]) – (min_split_loss) 在树的叶节点上进行进一步分区所需的最小损失减少量。
min_child_weight (Optional[float]) – 子节点中所需的实例权重(Hessian)的最小和。
sampling_method (Optional[str]) – 采样方法。仅由
hist
树方法的 GPU 版本使用。 -uniform
: 均匀选择随机训练实例。 -gradient_based
: 当梯度和 Hessian 较大时,以更高概率选择随机训练实例。(参见 CatBoost)random_state (Union[numpy.random.mtrand.RandomState, numpy.random._generator.Generator, int, NoneType]) – 随机数种子。 .. 注意:: 使用 shotgun updater 的 gblinear booster 是非确定性的,因为它使用了 Hogwild 算法。
monotone_constraints (Union[Dict[str, int], str, NoneType]) – 变量单调性的约束。更多信息请参见 教程。
interaction_constraints (Union[str, List[Tuple[str]], NoneType]) – 表示允许交互的约束条件。约束条件必须以嵌套列表的形式指定,例如
[[0, 1], [2, 3, 4]]
,其中每个内部列表是一组允许相互交互的特征索引。更多信息请参见 教程。importance_type (Optional[str]) – 特征重要性类型用于feature_importances_属性: * 对于树模型,可以是”gain”、”weight”、”cover”、”total_gain”或”total_cover”。 * 对于线性模型,仅定义了”weight”,它是无偏差的归一化系数。
Added in version 2.0.0.
设备序号,可用选项为 cpu、cuda 和 gpu。
feature_types (Optional[Sequence[str]]) –
Added in version 1.7.0.
用于指定特征类型而不构建数据框。详情请参见
DMatrix
。max_cat_to_onehot (Optional[int]) –
Added in version 1.6.0.
备注
此参数为实验性
决定XGBoost是否应使用独热编码进行分类数据分割的阈值。当类别数量小于阈值时,选择独热编码,否则类别将被分割到子节点中。此外,需要设置 enable_categorical 以支持分类特征。详情请参见 分类数据 和 分类特征的参数。
max_cat_threshold (Optional[int]) –
Added in version 1.7.0.
备注
此参数为实验性
每个分割考虑的最大类别数。仅用于基于分区的分割,以防止过拟合。此外,enable_categorical 需要设置为支持分类特征。详情请参见 分类数据 和 分类特征的参数。
multi_strategy (Optional[str]) –
Added in version 2.0.0.
备注
此参数正在开发中。
用于训练多目标模型的策略,包括多目标回归和多类分类。更多信息请参见 多重输出。
one_output_per_tree
: 每个目标一个模型。multi_output_tree
: 使用多目标树。
eval_metric (Union[str, List[str], Callable, NoneType]) –
Added in version 1.6.0.
用于监控训练结果和提前停止的指标。它可以是一个字符串或字符串列表,作为XGBoost中预定义指标的名称(参见doc/parameter.rst),也可以是
sklearn.metrics
中的一个指标,或者是任何其他类似于 sklearn.metrics 的用户定义指标。如果提供了自定义目标,那么自定义指标应实现相应的反向链接函数。
与 scikit-learn 中常用的 scoring 参数不同,当提供一个可调用对象时,它被假定为一个成本函数,默认情况下 XGBoost 将在早停期间最小化结果。
For advanced usage on Early stopping like directly choosing to maximize instead of minimize, see
xgboost.callback.EarlyStopping
.更多信息请参见 自定义目标和评估指标 和 自定义目标和指标。
from sklearn.datasets import load_diabetes from sklearn.metrics import mean_absolute_error X, y = load_diabetes(return_X_y=True) reg = xgb.XGBRegressor( tree_method="hist", eval_metric=mean_absolute_error, ) reg.fit(X, y, eval_set=[(X, y)])
early_stopping_rounds (Optional[int]) –
Added in version 1.6.0.
激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次以继续训练。这需要在
fit()
中至少有一个 eval_set 项。如果发生早停,模型将有两个额外的属性:
best_score
和best_iteration
。这些属性用于predict()
和apply()
方法,以在推理过程中确定最佳的树的数量。如果用户想要访问完整的模型(包括早停后构建的树),他们可以在这些推理方法中指定 iteration_range。此外,其他实用工具如模型绘图也可以使用整个模型。如果你倾向于在 best_iteration 之后丢弃树,可以考虑使用回调函数
xgboost.callback.EarlyStopping
。如果 eval_set 中有多个项目,最后一个条目将用于提前停止。如果 eval_metric 中有多个指标,最后一个指标将用于提前停止。
callbacks (Optional[List[xgboost.callback.TrainingCallback]]) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. 注意:
kwargs (Optional[Any]) – XGBoost Booster对象的关键字参数。参数的完整文档可以在 这里 找到。尝试通过构造函数参数和 **kwargs 字典同时设置参数将导致 TypeError。
- apply(X, iteration_range=None)
返回每个样本在每棵树上的预测叶子。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。
- property coef_: ndarray
Coefficients 属性
备注
系数仅针对线性学习器定义
系数仅在选择线性模型作为基础学习器时定义(booster=gblinear)。对于其他基础学习器类型,如树学习器(booster=gbtree),则未定义。
- 返回:
coef_
- 返回类型:
形状为
[n_features]
或[n_classes, n_features]
的数组
- evals_result()
返回评估结果。
如果将 eval_set 传递给
fit()
函数,你可以调用evals_result()
来获取所有传递的 eval_sets 的评估结果。当 eval_metric 也被传递给fit()
函数时,evals_result 将包含传递给fit()
函数的 eval_metrics。返回的评估结果是一个字典:
{'validation_0': {'logloss': ['0.604835', '0.531479']}, 'validation_1': {'logloss': ['0.41965', '0.17686']}}
- 返回类型:
evals_result
- property feature_importances_: ndarray
特征重要性属性,返回结果取决于 importance_type 参数。当模型使用多类/多标签/多目标数据集训练时,特征重要性是“平均”所有目标的。“平均”是基于重要性类型定义的。例如,如果重要性类型是“total_gain”,那么分数是所有树中每个分裂的损失变化的总和。
- 返回:
feature_importances_ (形状为
[n_features]
的数组,多类情况除外)线性模型,返回形状为 (n_features, n_classes) 的数组
- fit(X, y, *, sample_weight=None, base_margin=None, eval_set=None, verbose=True, xgb_model=None, sample_weight_eval_set=None, base_margin_eval_set=None, feature_weights=None)[源代码]
拟合梯度提升模型。
请注意,多次调用
fit()
将导致模型对象从头开始重新拟合。要从之前的检查点恢复训练,请显式传递xgb_model
参数。- 参数:
X (Any) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。当
tree_method
设置为hist
时,内部将使用QuantileDMatrix
而不是DMatrix
以节省内存。然而,当输入数据的设备与算法不匹配时,这会影响性能。例如,如果输入是CPU上的numpy数组,但训练使用cuda
,则数据首先在CPU上处理,然后传输到GPU。y (Any) – 标签
sample_weight (Any | None) – 实例权重
eval_set (Sequence[Tuple[Any, Any]] | None) – 用于作为验证集的 (X, y) 元组对列表,将计算这些验证集的指标。验证指标将帮助我们跟踪模型的性能。
verbose (bool | int | None) – 如果 verbose 为 True 并且使用了评估集,验证集上的评估指标会在每次提升阶段打印到标准输出。如果 verbose 是一个整数,评估指标会在每 verbose 次提升阶段打印。最后一次提升阶段或通过 early_stopping_rounds 找到的提升阶段也会被打印。
xgb_model (Booster | str | XGBModel | None) – 存储的XGBoost模型文件名或’Booster’实例 XGBoost模型,在训练前加载(允许训练继续)。
sample_weight_eval_set (Sequence[Any] | None) – 形式为 [L_1, L_2, …, L_n] 的列表,其中每个 L_i 是一个类似数组的对象,存储第 i 个验证集的实例权重。
base_margin_eval_set (Sequence[Any] | None) – 形式为 [M_1, M_2, …, M_n] 的列表,其中每个 M_i 是一个存储第 i 个验证集的基边界的类似数组的对象。
feature_weights (Any | None) – 每个特征的权重,定义了在使用colsample时每个特征被选中的概率。所有值必须大于0,否则会抛出 ValueError。
- 返回类型:
- get_booster()
获取此模型的底层 xgboost Booster。
当未调用 fit 时,这将引发异常
- 返回:
booster
- 返回类型:
a xgboost booster of underlying model
- get_metadata_routing()
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回:
routing – 一个封装了路由信息的
MetadataRequest
。- 返回类型:
MetadataRequest
- property intercept_: ndarray
截距(偏差)属性
对于基于树的模型,返回值是 base_score。
- 返回:
拦截_
- 返回类型:
形状为
(1,)
或[n_classes]
的数组
- load_model(fname)
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(X, output_margin=False, validate_features=True, base_margin=None, iteration_range=None)
使用 X 进行预测。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (Any) – 用于预测的数据。
output_margin (bool) – 是否输出未经转换的原始边距值。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定
iteration_range=(10, 20)
,那么只有在此期间[10, 20)(半开集)轮次内构建的森林用于此次预测。 .. versionadded:: 1.4.0
- 返回类型:
prediction
- save_model(fname)
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- 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 (array-like of shape (n_samples, n_features)) – 测试样本。对于某些估计器,这可能是一个预计算的核矩阵,或者是一个形状为
(n_samples, n_samples_fitted)
的通用对象列表,其中n_samples_fitted
是用于估计器拟合的样本数量。y (array-like of shape (n_samples,) or (n_samples, n_outputs)) – X 的真值。
sample_weight (array-like of shape (n_samples,), default=None) – 样本权重。
- 返回:
score –
self.predict(X)
相对于 y 的 \(R^2\)。- 返回类型:
备注
在调用回归器的
score
时使用的 \(R^2\) 评分,从版本 0.23 开始使用multioutput='uniform_average'
以保持与r2_score()
的默认值一致。这会影响所有多输出回归器的score
方法(除了MultiOutputRegressor
)。
- set_fit_request(*, base_margin='$UNCHANGED$', base_margin_eval_set='$UNCHANGED$', eval_set='$UNCHANGED$', feature_weights='$UNCHANGED$', sample_weight='$UNCHANGED$', sample_weight_eval_set='$UNCHANGED$', verbose='$UNCHANGED$', xgb_model='$UNCHANGED$')
传递给
fit
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给fit
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给fit
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin
参数的元数据路由。base_margin_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin_eval_set
参数的元数据路由。eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_set
参数的元数据路由。feature_weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中feature_weights
参数的元数据路由。sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight
参数的元数据路由。sample_weight_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight_eval_set
参数的元数据路由。verbose (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中verbose
参数的元数据路由。xgb_model (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中xgb_model
参数的元数据路由。self (XGBRFRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_params(**params)
设置此估计器的参数。修改了 sklearn 方法以允许未知的 kwargs。这允许使用在 sklearn 网格搜索中未定义为成员变量的 xgboost 参数的完整范围。
- 返回类型:
self
- 参数:
params (Any)
- set_predict_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', output_margin='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict
。如果未提供元数据,则忽略请求。False
: 不请求元数据,元估计器不会将其传递给predict
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中iteration_range
参数的元数据路由。output_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中output_margin
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中validate_features
参数的元数据路由。self (XGBRFRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_score_request(*, sample_weight='$UNCHANGED$')
传递给
score
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给score
。如果未提供元数据,则忽略请求。False
: 不需要元数据,元估计器不会将其传递给score
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
score
方法中sample_weight
参数的元数据路由。self (XGBRFRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- class xgboost.XGBRFClassifier(*, learning_rate=1.0, subsample=0.8, colsample_bynode=0.8, reg_lambda=1e-05, **kwargs)[源代码]
-
XGBoost 随机森林分类的 scikit-learn API。更多信息请参见 使用 Scikit-Learn 估计器接口。
- 参数:
n_estimators (Optional[int]) – 随机森林中拟合的树的数量。
grow_policy (Optional[str]) – 树生长策略。 - depthwise: 倾向于在离节点最近的节点进行分割, - lossguide: 倾向于在损失变化最大的节点进行分割。
objective (Union[str, xgboost.sklearn._SklObjWProto, Callable[[Any, Any], Tuple[numpy.ndarray, numpy.ndarray]], NoneType]) – 指定学习任务以及相应的学习目标或自定义目标函数。对于自定义目标,请参阅 自定义目标和评估指标 和 自定义目标和指标 以获取更多信息,以及函数签名的结尾注释。
tree_method (Optional[str]) – 指定要使用的树方法。默认为自动。如果此参数设置为默认,XGBoost 将选择最保守的可用选项。建议从参数文档中研究此选项 树方法
n_jobs (Optional[int]) – 用于运行 xgboost 的并行线程数。当与其他 Scikit-Learn 算法(如网格搜索)一起使用时,您可以选择并行化哪个算法并平衡线程。创建线程争用将显著减慢两个算法。
gamma (Optional[float]) – (min_split_loss) 在树的叶节点上进行进一步分区所需的最小损失减少量。
min_child_weight (Optional[float]) – 子节点中所需的实例权重(Hessian)的最小和。
sampling_method (Optional[str]) – 采样方法。仅由
hist
树方法的 GPU 版本使用。 -uniform
: 均匀选择随机训练实例。 -gradient_based
: 当梯度和 Hessian 较大时,以更高概率选择随机训练实例。(参见 CatBoost)random_state (Union[numpy.random.mtrand.RandomState, numpy.random._generator.Generator, int, NoneType]) – 随机数种子。 .. 注意:: 使用 shotgun updater 的 gblinear booster 是非确定性的,因为它使用了 Hogwild 算法。
monotone_constraints (Union[Dict[str, int], str, NoneType]) – 变量单调性的约束。更多信息请参见 教程。
interaction_constraints (Union[str, List[Tuple[str]], NoneType]) – 表示允许交互的约束条件。约束条件必须以嵌套列表的形式指定,例如
[[0, 1], [2, 3, 4]]
,其中每个内部列表是一组允许相互交互的特征索引。更多信息请参见 教程。importance_type (Optional[str]) – 特征重要性类型用于feature_importances_属性: * 对于树模型,可以是”gain”、”weight”、”cover”、”total_gain”或”total_cover”。 * 对于线性模型,仅定义了”weight”,它是无偏差的归一化系数。
Added in version 2.0.0.
设备序号,可用选项为 cpu、cuda 和 gpu。
feature_types (Optional[Sequence[str]]) –
Added in version 1.7.0.
用于指定特征类型而不构建数据框。详情请参见
DMatrix
。max_cat_to_onehot (Optional[int]) –
Added in version 1.6.0.
备注
此参数为实验性
决定XGBoost是否应使用独热编码进行分类数据分割的阈值。当类别数量小于阈值时,选择独热编码,否则类别将被分割到子节点中。此外,需要设置 enable_categorical 以支持分类特征。详情请参见 分类数据 和 分类特征的参数。
max_cat_threshold (Optional[int]) –
Added in version 1.7.0.
备注
此参数为实验性
每个分割考虑的最大类别数。仅用于基于分区的分割,以防止过拟合。此外,enable_categorical 需要设置为支持分类特征。详情请参见 分类数据 和 分类特征的参数。
multi_strategy (Optional[str]) –
Added in version 2.0.0.
备注
此参数正在开发中。
用于训练多目标模型的策略,包括多目标回归和多类分类。更多信息请参见 多重输出。
one_output_per_tree
: 每个目标一个模型。multi_output_tree
: 使用多目标树。
eval_metric (Union[str, List[str], Callable, NoneType]) –
Added in version 1.6.0.
用于监控训练结果和提前停止的指标。它可以是一个字符串或字符串列表,作为XGBoost中预定义指标的名称(参见doc/parameter.rst),也可以是
sklearn.metrics
中的一个指标,或者是任何其他类似于 sklearn.metrics 的用户定义指标。如果提供了自定义目标,那么自定义指标应实现相应的反向链接函数。
与 scikit-learn 中常用的 scoring 参数不同,当提供一个可调用对象时,它被假定为一个成本函数,默认情况下 XGBoost 将在早停期间最小化结果。
For advanced usage on Early stopping like directly choosing to maximize instead of minimize, see
xgboost.callback.EarlyStopping
.更多信息请参见 自定义目标和评估指标 和 自定义目标和指标。
from sklearn.datasets import load_diabetes from sklearn.metrics import mean_absolute_error X, y = load_diabetes(return_X_y=True) reg = xgb.XGBRegressor( tree_method="hist", eval_metric=mean_absolute_error, ) reg.fit(X, y, eval_set=[(X, y)])
early_stopping_rounds (Optional[int]) –
Added in version 1.6.0.
激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次以继续训练。这需要在
fit()
中至少有一个 eval_set 项。如果发生早停,模型将有两个额外的属性:
best_score
和best_iteration
。这些属性用于predict()
和apply()
方法,以在推理过程中确定最佳的树的数量。如果用户想要访问完整的模型(包括早停后构建的树),他们可以在这些推理方法中指定 iteration_range。此外,其他实用工具如模型绘图也可以使用整个模型。如果你倾向于在 best_iteration 之后丢弃树,可以考虑使用回调函数
xgboost.callback.EarlyStopping
。如果 eval_set 中有多个项目,最后一个条目将用于提前停止。如果 eval_metric 中有多个指标,最后一个指标将用于提前停止。
callbacks (Optional[List[xgboost.callback.TrainingCallback]]) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. 注意:
kwargs (Optional[Any]) – XGBoost Booster对象的关键字参数。参数的完整文档可以在 这里 找到。尝试通过构造函数参数和 **kwargs 字典同时设置参数将导致 TypeError。
- apply(X, iteration_range=None)
返回每个样本在每棵树上的预测叶子。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。
- property coef_: ndarray
Coefficients 属性
备注
系数仅针对线性学习器定义
系数仅在选择线性模型作为基础学习器时定义(booster=gblinear)。对于其他基础学习器类型,如树学习器(booster=gbtree),则未定义。
- 返回:
coef_
- 返回类型:
形状为
[n_features]
或[n_classes, n_features]
的数组
- evals_result()
返回评估结果。
如果将 eval_set 传递给
fit()
函数,你可以调用evals_result()
来获取所有传递的 eval_sets 的评估结果。当 eval_metric 也被传递给fit()
函数时,evals_result 将包含传递给fit()
函数的 eval_metrics。返回的评估结果是一个字典:
{'validation_0': {'logloss': ['0.604835', '0.531479']}, 'validation_1': {'logloss': ['0.41965', '0.17686']}}
- 返回类型:
evals_result
- property feature_importances_: ndarray
特征重要性属性,返回结果取决于 importance_type 参数。当模型使用多类/多标签/多目标数据集训练时,特征重要性是“平均”所有目标的。“平均”是基于重要性类型定义的。例如,如果重要性类型是“total_gain”,那么分数是所有树中每个分裂的损失变化的总和。
- 返回:
feature_importances_ (形状为
[n_features]
的数组,多类情况除外)线性模型,返回形状为 (n_features, n_classes) 的数组
- fit(X, y, *, sample_weight=None, base_margin=None, eval_set=None, verbose=True, xgb_model=None, sample_weight_eval_set=None, base_margin_eval_set=None, feature_weights=None)[源代码]
拟合梯度提升分类器。
请注意,多次调用
fit()
将导致模型对象从头开始重新拟合。要从之前的检查点恢复训练,请显式传递xgb_model
参数。- 参数:
X (Any) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。当
tree_method
设置为hist
时,内部将使用QuantileDMatrix
而不是DMatrix
以节省内存。然而,当输入数据的设备与算法不匹配时,这会影响性能。例如,如果输入是CPU上的numpy数组,但训练使用cuda
,则数据首先在CPU上处理,然后传输到GPU。y (Any) – 标签
sample_weight (Any | None) – 实例权重
eval_set (Sequence[Tuple[Any, Any]] | None) – 用于作为验证集的 (X, y) 元组对列表,将计算这些验证集的指标。验证指标将帮助我们跟踪模型的性能。
verbose (bool | int | None) – 如果 verbose 为 True 并且使用了评估集,验证集上的评估指标会在每次提升阶段打印到标准输出。如果 verbose 是一个整数,评估指标会在每 verbose 次提升阶段打印。最后一次提升阶段或通过 early_stopping_rounds 找到的提升阶段也会被打印。
xgb_model (Booster | str | XGBModel | None) – 存储的XGBoost模型文件名或’Booster’实例 XGBoost模型,在训练前加载(允许训练继续)。
sample_weight_eval_set (Sequence[Any] | None) – 形式为 [L_1, L_2, …, L_n] 的列表,其中每个 L_i 是一个类似数组的对象,存储第 i 个验证集的实例权重。
base_margin_eval_set (Sequence[Any] | None) – 形式为 [M_1, M_2, …, M_n] 的列表,其中每个 M_i 是一个存储第 i 个验证集的基边界的类似数组的对象。
feature_weights (Any | None) – 每个特征的权重,定义了在使用colsample时每个特征被选中的概率。所有值必须大于0,否则会抛出 ValueError。
- 返回类型:
- get_booster()
获取此模型的底层 xgboost Booster。
当未调用 fit 时,这将引发异常
- 返回:
booster
- 返回类型:
a xgboost booster of underlying model
- get_metadata_routing()
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回:
routing – 一个封装了路由信息的
MetadataRequest
。- 返回类型:
MetadataRequest
- property intercept_: ndarray
截距(偏差)属性
对于基于树的模型,返回值是 base_score。
- 返回:
拦截_
- 返回类型:
形状为
(1,)
或[n_classes]
的数组
- load_model(fname)
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(X, output_margin=False, validate_features=True, base_margin=None, iteration_range=None)
使用 X 进行预测。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (Any) – 用于预测的数据。
output_margin (bool) – 是否输出未经转换的原始边距值。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定
iteration_range=(10, 20)
,那么只有在此期间[10, 20)(半开集)轮次内构建的森林用于此次预测。 .. versionadded:: 1.4.0
- 返回类型:
prediction
- predict_proba(X, validate_features=True, base_margin=None, iteration_range=None)
预测每个 X 样本属于给定类别的概率。如果模型是使用早停法训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (Any) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定在预测中使用哪一层树。例如,如果一个随机森林被训练了100轮。指定 iteration_range=(10, 20),那么只有在这 [10, 20)(半开区间)轮中构建的森林被用于此次预测。
- 返回:
一个形状为 (n_samples, n_classes) 的 numpy 数组,表示每个数据样本属于某一类的概率。
- 返回类型:
prediction
- save_model(fname)
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- score(X, y, sample_weight=None)
返回给定测试数据和标签的平均准确率。
在多标签分类中,这是子集准确率,这是一个严格的度量标准,因为你要求每个样本的每个标签集都被正确预测。
- 参数:
X (array-like of shape (n_samples, n_features)) – 测试样本。
y (array-like of shape (n_samples,) or (n_samples, n_outputs)) – X 的真实标签。
sample_weight (array-like of shape (n_samples,), default=None) – 样本权重。
- 返回:
score –
self.predict(X)
相对于 y 的平均准确率。- 返回类型:
- set_fit_request(*, base_margin='$UNCHANGED$', base_margin_eval_set='$UNCHANGED$', eval_set='$UNCHANGED$', feature_weights='$UNCHANGED$', sample_weight='$UNCHANGED$', sample_weight_eval_set='$UNCHANGED$', verbose='$UNCHANGED$', xgb_model='$UNCHANGED$')
传递给
fit
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给fit
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给fit
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin
参数的元数据路由。base_margin_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin_eval_set
参数的元数据路由。eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_set
参数的元数据路由。feature_weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中feature_weights
参数的元数据路由。sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight
参数的元数据路由。sample_weight_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight_eval_set
参数的元数据路由。verbose (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中verbose
参数的元数据路由。xgb_model (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中xgb_model
参数的元数据路由。self (XGBRFClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_params(**params)
设置此估计器的参数。修改了 sklearn 方法以允许未知的 kwargs。这允许使用在 sklearn 网格搜索中未定义为成员变量的 xgboost 参数的完整范围。
- 返回类型:
self
- 参数:
params (Any)
- set_predict_proba_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict_proba
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict_proba
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给predict_proba
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中iteration_range
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中的validate_features
参数的元数据路由。self (XGBRFClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_predict_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', output_margin='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict
。如果未提供元数据,则忽略请求。False
: 不请求元数据,元估计器不会将其传递给predict
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中iteration_range
参数的元数据路由。output_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中output_margin
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中validate_features
参数的元数据路由。self (XGBRFClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_score_request(*, sample_weight='$UNCHANGED$')
传递给
score
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给score
。如果未提供元数据,则忽略请求。False
: 不需要元数据,元估计器不会将其传递给score
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
score
方法中sample_weight
参数的元数据路由。self (XGBRFClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
绘图 API
绘图库。
- xgboost.plot_importance(booster, ax=None, height=0.2, xlim=None, ylim=None, title='Feature importance', xlabel='F score', ylabel='Features', fmap='', importance_type='weight', max_num_features=None, grid=True, show_values=True, values_format='{v}', **kwargs)[源代码]
基于拟合的树绘制重要性。
- 参数:
booster (XGBModel | Booster | dict) – Booster 或 XGBModel 实例,或由 Booster.get_fscore() 获取的字典
ax (matplotlib Axes) – 目标轴实例。如果为 None,将创建新的图形和轴。
grid (bool) – 打开或关闭轴网格。默认是True(打开)。
importance_type (str) – 重要性计算方式:可以是“权重”、“增益”或“覆盖” * “权重”是特征在树中出现的次数 * “增益”是使用该特征的分割的平均增益 * “覆盖”是使用该特征的分割的平均覆盖范围 其中,覆盖范围定义为受分割影响的样本数量
max_num_features (int | None) – 绘图上显示的最大顶部特征数量。如果为 None,则将显示所有特征。
height (float) – 条形高度,传递给 ax.barh()
xlim (tuple | None) – 传递给 axes.xlim() 的元组
ylim (tuple | None) – 传递给 axes.ylim() 的元组
title (str) – 坐标轴标题。要禁用,传递 None。
xlabel (str) – X 轴标题标签。要禁用,传递 None。
ylabel (str) – Y 轴标题标签。要禁用,传递 None。
show_values (bool) – 在图表上显示值。若要禁用,请传递 False。
values_format (str) – 值的格式化字符串。”v” 将被替换为特征重要性的值。例如,传递 “{v:.2f}” 以便将图表上每个打印值的小数点后的位数限制为两位。
kwargs (Any) – 传递给 ax.barh() 的其他关键字
- 返回:
ax
- 返回类型:
matplotlib Axes
- xgboost.plot_tree(booster, fmap='', num_trees=0, rankdir=None, ax=None, **kwargs)[源代码]
绘制指定的树。
- 参数:
- 返回:
ax
- 返回类型:
matplotlib Axes
- xgboost.to_graphviz(booster, fmap='', num_trees=0, rankdir=None, yes_color=None, no_color=None, condition_node_params=None, leaf_node_params=None, **kwargs)[源代码]
将指定的树转换为 graphviz 实例。IPython 可以自动绘制返回的 graphviz 实例。否则,您应该调用返回的 graphviz 实例的 .render() 方法。
- 参数:
booster (Booster | XGBModel) – Booster 或 XGBModel 实例
num_trees (int) – 指定目标树的序号
rankdir (str | None) – 通过 graph_attr 传递给 graphviz
yes_color (str | None) – 当满足节点条件时的边颜色。
no_color (str | None) – 当不满足节点条件时的边颜色。
condition_node_params (dict | None) – graphviz 的条件节点配置。示例: .. code-block:: python
leaf_node_params (dict | None) – graphviz 的叶节点配置。示例: .. code-block:: python
kwargs (Any) – 传递给 graphviz graph_attr 的其他关键字,例如
graph [ {key} = {value} ]
- 返回:
图
- 返回类型:
graphviz.Source
回调 API
包含训练例程的回调库。有关快速介绍,请参阅 回调函数。
- class xgboost.callback.TrainingCallback[源代码]
训练回调的接口。
Added in version 1.3.0.
- before_iteration(model, epoch, evals_log)[源代码]
在每次迭代之前运行。当训练应停止时返回 True。详情请参见
after_iteration()
。
- class xgboost.callback.EvaluationMonitor(rank=0, period=1, show_stdv=False)[源代码]
-
在每次迭代时打印评估结果。
Added in version 1.3.0.
- class xgboost.callback.EarlyStopping(rounds, metric_name=None, data_name=None, maximize=None, save_best=False, min_delta=0.0)[源代码]
-
用于提前停止的回调函数
Added in version 1.3.0.
- 参数:
示例
es = xgboost.callback.EarlyStopping( rounds=2, min_delta=1e-3, save_best=True, maximize=False, data_name="validation_0", metric_name="mlogloss", ) clf = xgboost.XGBClassifier(tree_method="hist", device="cuda", callbacks=[es]) X, y = load_digits(return_X_y=True) clf.fit(X, y, eval_set=[(X, y)])
- class xgboost.callback.LearningRateScheduler(learning_rates)[源代码]
-
用于调度学习率的回调函数。
Added in version 1.3.0.
- 参数:
learning_rates (Callable[[int], float] | Sequence[float]) – 如果它是一个可调用对象,那么它应该接受一个整数参数 epoch 并返回相应的学习率。否则,它应该是一个与提升轮数大小相同的序列,如列表或元组。
- class xgboost.callback.TrainingCheckPoint(directory, name='model', as_pickle=False, interval=100)[源代码]
-
检查点操作。鼓励用户为检查点创建自己的回调,因为 XGBoost 不处理分布式文件系统。在分布式系统上进行检查点操作时,请确保了解工作节点的等级,以避免多个工作节点将检查点保存到同一位置。
Added in version 1.3.0.
自 XGBoost 2.1.0 起,默认格式已更改为 UBJSON。
- 参数:
Dask API
分布式训练的 Dask 扩展
参见 使用 Dask 进行分布式 XGBoost 的简单教程。另外参见 XGBoost Dask 功能演示 的一些示例。
本模块中有两组API,一组是包含 train
和 predict
方法的功能性API。另一组是有状态的Scikit-Learner包装器,继承自单节点Scikit-Learn接口。
该实现深受 dask_xgboost 的影响:https://github.com/dask/dask-xgboost
可选的 dask 配置
xgboost.scheduler_address: 指定调度器地址,参见 故障排除。
Added in version 1.6.0.
dask.config.set({"xgboost.scheduler_address": "192.0.0.100"}) # We can also specify the port. dask.config.set({"xgboost.scheduler_address": "192.0.0.100:12345"})
- class xgboost.dask.DaskDMatrix(client, data, label=None, *, weight=None, base_margin=None, missing=None, silent=False, feature_names=None, feature_types=None, group=None, qid=None, label_lower_bound=None, label_upper_bound=None, feature_weights=None, enable_categorical=False)[源代码]
基类:
object
DMatrix 持有对 Dask DataFrame 或 Dask Array 的引用。构建 DaskDMatrix 会强制所有惰性计算执行。如果你想看到构建 DaskDMatrix 的实际计算,请显式等待输入数据。
See doc for
xgboost.DMatrix
constructor for other parameters. DaskDMatrix accepts only dask collection.备注
DaskDMatrix 不会在工作者之间重新分区或移动数据。平衡数据是调用者的责任。
Added in version 1.0.0.
- 参数:
client (distributed.Client) – 指定用于训练的 dask 客户端。如果没有设置,则使用 dask 返回的默认客户端。
data (da.Array | dd.DataFrame)
label (da.Array | dd.DataFrame | dd.Series | None)
weight (da.Array | dd.DataFrame | dd.Series | None)
base_margin (da.Array | dd.DataFrame | dd.Series | None)
missing (float | None)
silent (bool)
group (da.Array | dd.DataFrame | dd.Series | None)
qid (da.Array | dd.DataFrame | dd.Series | None)
label_lower_bound (da.Array | dd.DataFrame | dd.Series | None)
label_upper_bound (da.Array | dd.DataFrame | dd.Series | None)
feature_weights (da.Array | dd.DataFrame | dd.Series | None)
enable_categorical (bool)
- class xgboost.dask.DaskQuantileDMatrix(client, data, label=None, *, weight=None, base_margin=None, missing=None, silent=False, feature_names=None, feature_types=None, max_bin=None, ref=None, group=None, qid=None, label_lower_bound=None, label_upper_bound=None, feature_weights=None, enable_categorical=False)[源代码]
基类:
DaskDMatrix
一个
QuantileDMatrix
的 dask 版本。- 参数:
client (distributed.Client)
data (da.Array | dd.DataFrame)
label (da.Array | dd.DataFrame | dd.Series | None)
weight (da.Array | dd.DataFrame | dd.Series | None)
base_margin (da.Array | dd.DataFrame | dd.Series | None)
missing (float | None)
silent (bool)
max_bin (int | None)
ref (DMatrix | None)
group (da.Array | dd.DataFrame | dd.Series | None)
qid (da.Array | dd.DataFrame | dd.Series | None)
label_lower_bound (da.Array | dd.DataFrame | dd.Series | None)
label_upper_bound (da.Array | dd.DataFrame | dd.Series | None)
feature_weights (da.Array | dd.DataFrame | dd.Series | None)
enable_categorical (bool)
- num_col()
获取DMatrix中的列数(特征数)。
- 返回类型:
number of columns
- xgboost.dask.train(client, params, dtrain, num_boost_round=10, *, evals=None, obj=None, feval=None, early_stopping_rounds=None, xgb_model=None, verbose_eval=True, callbacks=None, custom_metric=None)[源代码]
训练 XGBoost 模型。
Added in version 1.0.0.
备注
其他参数与
xgboost.train()
相同,除了 evals_result,它作为函数返回值的一部分返回,而不是作为参数。- 参数:
client (distributed.Client) – 指定用于训练的 dask 客户端。如果没有设置,则使用 dask 返回的默认客户端。
dtrain (DaskDMatrix)
num_boost_round (int)
evals (Sequence[Tuple[DaskDMatrix, str]] | None)
obj (Callable[[ndarray, DMatrix], Tuple[ndarray, ndarray]] | None)
feval (Callable[[ndarray, DMatrix], Tuple[str, float]] | None)
early_stopping_rounds (int | None)
xgb_model (Booster | None)
callbacks (Sequence[TrainingCallback] | None)
custom_metric (Callable[[ndarray, DMatrix], Tuple[str, float]] | None)
- 返回:
结果 – 包含训练好的增强器和评估历史的字典。history 字段与 xgboost.train 中的 eval_result 相同。 .. code-block:: python {‘booster’: xgboost.Booster, ‘history’: {‘train’: {‘logloss’: [‘0.48253’, ‘0.35953’]}, ‘eval’: {‘logloss’: [‘0.480385’, ‘0.357756’]}}}
- 返回类型:
- xgboost.dask.predict(client, model, data, output_margin=False, missing=nan, pred_leaf=False, pred_contribs=False, approx_contribs=False, pred_interactions=False, validate_features=True, iteration_range=(0, 0), strict_shape=False)[源代码]
使用训练好的提升器进行预测。
备注
使用
inplace_predict
在不需要某些特征时可能会更快。有关各种参数的详细信息,请参阅xgboost.Booster.predict()
。当输出具有超过2个维度(shap值,严格形状的叶子)时,输入应为da.Array
或DaskDMatrix
。Added in version 1.0.0.
- 参数:
client (distributed.Client | None) – 指定用于训练的 dask 客户端。如果没有设置,则使用 dask 返回的默认客户端。
model (TrainReturnT | Booster | distributed.Future) – 训练好的模型。它可以是一个分布式.Future,因此用户可以预先将它分散到所有工作节点上。
data (DaskDMatrix | da.Array | dd.DataFrame) – 用于预测的输入数据。当输入是数据框对象时,预测输出是一个序列。
missing (float) – 当输入数据不是 DaskDMatrix 时使用。指定被视为缺失的值。
output_margin (bool)
pred_leaf (bool)
pred_contribs (bool)
approx_contribs (bool)
pred_interactions (bool)
validate_features (bool)
strict_shape (bool)
- 返回:
预测 – 当输入数据是
dask.array.Array
或DaskDMatrix
时,返回值是一个数组;当输入数据是dask.dataframe.DataFrame
时,返回值可以是dask.dataframe.Series
或dask.dataframe.DataFrame
,具体取决于输出形状。- 返回类型:
dask.array.Array/dask.dataframe.Series
- xgboost.dask.inplace_predict(client, model, data, iteration_range=(0, 0), predict_type='value', missing=nan, validate_features=True, base_margin=None, strict_shape=False)[源代码]
原地预测。详情请参阅
xgboost.Booster.inplace_predict()
中的文档。Added in version 1.1.0.
- 参数:
client (distributed.Client | None) – 指定用于训练的 dask 客户端。如果没有设置,则使用 dask 返回的默认客户端。
model (TrainReturnT | Booster | distributed.Future) – 详情请参见
xgboost.dask.predict()
。data (da.Array | dd.DataFrame) – dask 集合。
iteration_range (Tuple[int | integer, int | integer]) – 详情请参见
xgboost.Booster.predict()
。predict_type (str) – 详情请参见
xgboost.Booster.inplace_predict()
。missing (float) – 输入数据中需要作为缺失值存在的值。如果为 None,则默认为 np.nan。
base_margin (da.Array | dd.DataFrame | dd.Series | None) –
See
xgboost.DMatrix
for details.Added in version 1.4.0.
strict_shape (bool) – 详情请参阅
xgboost.Booster.predict()
。 .. versionadded:: 1.4.0validate_features (bool)
- 返回:
当输入数据是
dask.array.Array
时,返回值是一个数组;当输入数据是dask.dataframe.DataFrame
时,返回值可以是dask.dataframe.Series
或dask.dataframe.DataFrame
,具体取决于输出形状。- 返回类型:
prediction
- class xgboost.dask.DaskXGBClassifier(max_depth=None, max_leaves=None, max_bin=None, grow_policy=None, learning_rate=None, n_estimators=None, verbosity=None, objective=None, booster=None, tree_method=None, n_jobs=None, gamma=None, min_child_weight=None, max_delta_step=None, subsample=None, sampling_method=None, colsample_bytree=None, colsample_bylevel=None, colsample_bynode=None, reg_alpha=None, reg_lambda=None, scale_pos_weight=None, base_score=None, random_state=None, missing=nan, num_parallel_tree=None, monotone_constraints=None, interaction_constraints=None, importance_type=None, device=None, validate_parameters=None, enable_categorical=False, feature_types=None, max_cat_to_onehot=None, max_cat_threshold=None, multi_strategy=None, eval_metric=None, early_stopping_rounds=None, callbacks=None, **kwargs)[源代码]
基类:
DaskScikitLearnBase
,ClassifierMixin
XGBoost 分类的 scikit-learn API 实现。更多信息请参见 使用 Scikit-Learn 估计器接口。
- 参数:
grow_policy (Optional[str]) – 树生长策略。 - depthwise: 倾向于在离节点最近的节点进行分割, - lossguide: 倾向于在损失变化最大的节点进行分割。
objective (Union[str, xgboost.sklearn._SklObjWProto, Callable[[Any, Any], Tuple[numpy.ndarray, numpy.ndarray]], NoneType]) – 指定学习任务以及相应的学习目标或自定义目标函数。对于自定义目标,请参阅 自定义目标和评估指标 和 自定义目标和指标 以获取更多信息,以及函数签名的结尾注释。
tree_method (Optional[str]) – 指定要使用的树方法。默认为自动。如果此参数设置为默认,XGBoost 将选择最保守的可用选项。建议从参数文档中研究此选项 树方法
n_jobs (Optional[int]) – 用于运行 xgboost 的并行线程数。当与其他 Scikit-Learn 算法(如网格搜索)一起使用时,您可以选择并行化哪个算法并平衡线程。创建线程争用将显著减慢两个算法。
gamma (Optional[float]) – (min_split_loss) 在树的叶节点上进行进一步分区所需的最小损失减少量。
min_child_weight (Optional[float]) – 子节点中所需的实例权重(Hessian)的最小和。
sampling_method (Optional[str]) – 采样方法。仅由
hist
树方法的 GPU 版本使用。 -uniform
: 均匀选择随机训练实例。 -gradient_based
: 当梯度和 Hessian 较大时,以更高概率选择随机训练实例。(参见 CatBoost)random_state (Union[numpy.random.mtrand.RandomState, numpy.random._generator.Generator, int, NoneType]) – 随机数种子。 .. 注意:: 使用 shotgun updater 的 gblinear booster 是非确定性的,因为它使用了 Hogwild 算法。
monotone_constraints (Union[Dict[str, int], str, NoneType]) – 变量单调性的约束。更多信息请参见 教程。
interaction_constraints (Union[str, List[Tuple[str]], NoneType]) – 表示允许交互的约束条件。约束条件必须以嵌套列表的形式指定,例如
[[0, 1], [2, 3, 4]]
,其中每个内部列表是一组允许相互交互的特征索引。更多信息请参见 教程。importance_type (Optional[str]) – 特征重要性类型用于feature_importances_属性: * 对于树模型,可以是”gain”、”weight”、”cover”、”total_gain”或”total_cover”。 * 对于线性模型,仅定义了”weight”,它是无偏差的归一化系数。
Added in version 2.0.0.
设备序号,可用选项为 cpu、cuda 和 gpu。
enable_categorical (bool) – 详情请参见
DMatrix
的相同参数。feature_types (Optional[Sequence[str]]) –
Added in version 1.7.0.
用于指定特征类型而不构建数据框。详情请参见
DMatrix
。max_cat_to_onehot (Optional[int]) –
Added in version 1.6.0.
备注
此参数为实验性
决定XGBoost是否应使用独热编码进行分类数据分割的阈值。当类别数量小于阈值时,选择独热编码,否则类别将被分割到子节点中。此外,需要设置 enable_categorical 以支持分类特征。详情请参见 分类数据 和 分类特征的参数。
max_cat_threshold (Optional[int]) –
Added in version 1.7.0.
备注
此参数为实验性
每个分割考虑的最大类别数。仅用于基于分区的分割,以防止过拟合。此外,enable_categorical 需要设置为支持分类特征。详情请参见 分类数据 和 分类特征的参数。
multi_strategy (Optional[str]) –
Added in version 2.0.0.
备注
此参数正在开发中。
用于训练多目标模型的策略,包括多目标回归和多类分类。更多信息请参见 多重输出。
one_output_per_tree
: 每个目标一个模型。multi_output_tree
: 使用多目标树。
eval_metric (Union[str, List[str], Callable, NoneType]) –
Added in version 1.6.0.
用于监控训练结果和提前停止的指标。它可以是一个字符串或字符串列表,作为XGBoost中预定义指标的名称(参见doc/parameter.rst),也可以是
sklearn.metrics
中的一个指标,或者是任何其他类似于 sklearn.metrics 的用户定义指标。如果提供了自定义目标,那么自定义指标应实现相应的反向链接函数。
与 scikit-learn 中常用的 scoring 参数不同,当提供一个可调用对象时,它被假定为一个成本函数,默认情况下 XGBoost 将在早停期间最小化结果。
For advanced usage on Early stopping like directly choosing to maximize instead of minimize, see
xgboost.callback.EarlyStopping
.更多信息请参见 自定义目标和评估指标 和 自定义目标和指标。
from sklearn.datasets import load_diabetes from sklearn.metrics import mean_absolute_error X, y = load_diabetes(return_X_y=True) reg = xgb.XGBRegressor( tree_method="hist", eval_metric=mean_absolute_error, ) reg.fit(X, y, eval_set=[(X, y)])
early_stopping_rounds (Optional[int]) –
Added in version 1.6.0.
激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次以继续训练。这需要在
fit()
中至少有一个 eval_set 项。如果发生早停,模型将有两个额外的属性:
best_score
和best_iteration
。这些属性用于predict()
和apply()
方法,以在推理过程中确定最佳的树的数量。如果用户想要访问完整的模型(包括早停后构建的树),他们可以在这些推理方法中指定 iteration_range。此外,其他实用工具如模型绘图也可以使用整个模型。如果你倾向于在 best_iteration 之后丢弃树,可以考虑使用回调函数
xgboost.callback.EarlyStopping
。如果 eval_set 中有多个项目,最后一个条目将用于提前停止。如果 eval_metric 中有多个指标,最后一个指标将用于提前停止。
callbacks (Optional[List[xgboost.callback.TrainingCallback]]) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. 注意:
kwargs (Optional[Any]) – XGBoost Booster对象的关键字参数。参数的完整文档可以在 这里 找到。尝试通过构造函数参数和 **kwargs 字典同时设置参数将导致 TypeError。 .. 注意:: **kwargs 不支持 scikit-learn **kwargs 不被 scikit-learn 支持。我们不保证通过此参数传递的参数会与 scikit-learn 正确交互。
- apply(X, iteration_range=None)
返回每个样本在每棵树上的预测叶子。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。
- property client: distributed.Client
在此模型中使用的 dask 客户端。Client 对象不能被序列化以进行传输,因此如果任务是从工作进程而不是直接从客户端进程启动的,则需要在该工作进程中设置此属性。
- property coef_: ndarray
Coefficients 属性
备注
系数仅针对线性学习器定义
系数仅在选择线性模型作为基础学习器时定义(booster=gblinear)。对于其他基础学习器类型,如树学习器(booster=gbtree),则未定义。
- 返回:
coef_
- 返回类型:
形状为
[n_features]
或[n_classes, n_features]
的数组
- evals_result()
返回评估结果。
如果将 eval_set 传递给
fit()
函数,你可以调用evals_result()
来获取所有传递的 eval_sets 的评估结果。当 eval_metric 也被传递给fit()
函数时,evals_result 将包含传递给fit()
函数的 eval_metrics。返回的评估结果是一个字典:
{'validation_0': {'logloss': ['0.604835', '0.531479']}, 'validation_1': {'logloss': ['0.41965', '0.17686']}}
- 返回类型:
evals_result
- property feature_importances_: ndarray
特征重要性属性,返回结果取决于 importance_type 参数。当模型使用多类/多标签/多目标数据集训练时,特征重要性是“平均”所有目标的。“平均”是基于重要性类型定义的。例如,如果重要性类型是“total_gain”,那么分数是所有树中每个分裂的损失变化的总和。
- 返回:
feature_importances_ (形状为
[n_features]
的数组,多类情况除外)线性模型,返回形状为 (n_features, n_classes) 的数组
- fit(X, y, *, sample_weight=None, base_margin=None, eval_set=None, verbose=True, xgb_model=None, sample_weight_eval_set=None, base_margin_eval_set=None, feature_weights=None)[源代码]
拟合梯度提升模型。
请注意,多次调用
fit()
将导致模型对象从头开始重新拟合。要从之前的检查点恢复训练,请显式传递xgb_model
参数。- 参数:
X (da.Array | dd.DataFrame) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。当
tree_method
设置为hist
时,内部将使用QuantileDMatrix
而不是DMatrix
以节省内存。然而,当输入数据的设备与算法不匹配时,这会影响性能。例如,如果输入是CPU上的numpy数组,但训练使用cuda
,则数据首先在CPU上处理,然后传输到GPU。y (da.Array | dd.DataFrame | dd.Series) – 标签
sample_weight (da.Array | dd.DataFrame | dd.Series | None) – 实例权重
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
eval_set (Sequence[Tuple[da.Array | dd.DataFrame | dd.Series, da.Array | dd.DataFrame | dd.Series]] | None) – 用于作为验证集的 (X, y) 元组对列表,将计算这些验证集的指标。验证指标将帮助我们跟踪模型的性能。
verbose (int | bool) – 如果 verbose 为 True 并且使用了评估集,验证集上的评估指标会在每次提升阶段打印到标准输出。如果 verbose 是一个整数,评估指标会在每 verbose 次提升阶段打印。最后一次提升阶段或通过 early_stopping_rounds 找到的提升阶段也会被打印。
xgb_model (Booster | XGBModel | None) – 存储的XGBoost模型文件名或’Booster’实例 XGBoost模型,在训练前加载(允许训练继续)。
sample_weight_eval_set (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 形式为 [L_1, L_2, …, L_n] 的列表,其中每个 L_i 是一个类似数组的对象,存储第 i 个验证集的实例权重。
base_margin_eval_set (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 形式为 [M_1, M_2, …, M_n] 的列表,其中每个 M_i 是一个存储第 i 个验证集的基边界的类似数组的对象。
feature_weights (da.Array | dd.DataFrame | dd.Series | None) – 每个特征的权重,定义了在使用colsample时每个特征被选中的概率。所有值必须大于0,否则会抛出 ValueError。
- 返回类型:
- get_booster()
获取此模型的底层 xgboost Booster。
当未调用 fit 时,这将引发异常
- 返回:
booster
- 返回类型:
a xgboost booster of underlying model
- get_metadata_routing()
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回:
routing – 一个封装了路由信息的
MetadataRequest
。- 返回类型:
MetadataRequest
- property intercept_: ndarray
截距(偏差)属性
对于基于树的模型,返回值是 base_score。
- 返回:
拦截_
- 返回类型:
形状为
(1,)
或[n_classes]
的数组
- load_model(fname)
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(X, output_margin=False, validate_features=True, base_margin=None, iteration_range=None)
使用 X 进行预测。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (da.Array | dd.DataFrame) – 用于预测的数据。
output_margin (bool) – 是否输出未经转换的原始边距值。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定
iteration_range=(10, 20)
,那么只有在此期间[10, 20)(半开集)轮次内构建的森林用于此次预测。 .. versionadded:: 1.4.0
- 返回类型:
prediction
- predict_proba(X, validate_features=True, base_margin=None, iteration_range=None)[源代码]
预测每个 X 样本属于给定类别的概率。如果模型是使用早停法训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (da.Array | dd.DataFrame | dd.Series) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定在预测中使用哪一层树。例如,如果一个随机森林被训练了100轮。指定 iteration_range=(10, 20),那么只有在这 [10, 20)(半开区间)轮中构建的森林被用于此次预测。
- 返回:
一个形状为 (n_samples, n_classes) 的 numpy 数组,表示每个数据样本属于某一类的概率。
- 返回类型:
prediction
- save_model(fname)
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- score(X, y, sample_weight=None)
返回给定测试数据和标签的平均准确率。
在多标签分类中,这是子集准确率,这是一个严格的度量标准,因为你要求每个样本的每个标签集都被正确预测。
- 参数:
X (array-like of shape (n_samples, n_features)) – 测试样本。
y (array-like of shape (n_samples,) or (n_samples, n_outputs)) – X 的真实标签。
sample_weight (array-like of shape (n_samples,), default=None) – 样本权重。
- 返回:
score –
self.predict(X)
相对于 y 的平均准确率。- 返回类型:
- set_fit_request(*, base_margin='$UNCHANGED$', base_margin_eval_set='$UNCHANGED$', eval_set='$UNCHANGED$', feature_weights='$UNCHANGED$', sample_weight='$UNCHANGED$', sample_weight_eval_set='$UNCHANGED$', verbose='$UNCHANGED$', xgb_model='$UNCHANGED$')
传递给
fit
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给fit
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给fit
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin
参数的元数据路由。base_margin_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin_eval_set
参数的元数据路由。eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_set
参数的元数据路由。feature_weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中feature_weights
参数的元数据路由。sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight
参数的元数据路由。sample_weight_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight_eval_set
参数的元数据路由。verbose (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中verbose
参数的元数据路由。xgb_model (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中xgb_model
参数的元数据路由。self (DaskXGBClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_params(**params)
设置此估计器的参数。修改了 sklearn 方法以允许未知的 kwargs。这允许使用在 sklearn 网格搜索中未定义为成员变量的 xgboost 参数的完整范围。
- 返回类型:
self
- 参数:
params (Any)
- set_predict_proba_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict_proba
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict_proba
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给predict_proba
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中iteration_range
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中的validate_features
参数的元数据路由。self (DaskXGBClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_predict_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', output_margin='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict
。如果未提供元数据,则忽略请求。False
: 不请求元数据,元估计器不会将其传递给predict
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中iteration_range
参数的元数据路由。output_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中output_margin
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中validate_features
参数的元数据路由。self (DaskXGBClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_score_request(*, sample_weight='$UNCHANGED$')
传递给
score
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给score
。如果未提供元数据,则忽略请求。False
: 不需要元数据,元估计器不会将其传递给score
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
score
方法中sample_weight
参数的元数据路由。self (DaskXGBClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- class xgboost.dask.DaskXGBRegressor(max_depth=None, max_leaves=None, max_bin=None, grow_policy=None, learning_rate=None, n_estimators=None, verbosity=None, objective=None, booster=None, tree_method=None, n_jobs=None, gamma=None, min_child_weight=None, max_delta_step=None, subsample=None, sampling_method=None, colsample_bytree=None, colsample_bylevel=None, colsample_bynode=None, reg_alpha=None, reg_lambda=None, scale_pos_weight=None, base_score=None, random_state=None, missing=nan, num_parallel_tree=None, monotone_constraints=None, interaction_constraints=None, importance_type=None, device=None, validate_parameters=None, enable_categorical=False, feature_types=None, max_cat_to_onehot=None, max_cat_threshold=None, multi_strategy=None, eval_metric=None, early_stopping_rounds=None, callbacks=None, **kwargs)[源代码]
基类:
DaskScikitLearnBase
,RegressorMixin
XGBoost 的 Scikit-Learn API 实现。更多信息请参见 使用 Scikit-Learn 估计器接口。
- 参数:
grow_policy (Optional[str]) – 树生长策略。 - depthwise: 倾向于在离节点最近的节点进行分割, - lossguide: 倾向于在损失变化最大的节点进行分割。
objective (Union[str, xgboost.sklearn._SklObjWProto, Callable[[Any, Any], Tuple[numpy.ndarray, numpy.ndarray]], NoneType]) – 指定学习任务以及相应的学习目标或自定义目标函数。对于自定义目标,请参阅 自定义目标和评估指标 和 自定义目标和指标 以获取更多信息,以及函数签名的结尾注释。
tree_method (Optional[str]) – 指定要使用的树方法。默认为自动。如果此参数设置为默认,XGBoost 将选择最保守的可用选项。建议从参数文档中研究此选项 树方法
n_jobs (Optional[int]) – 用于运行 xgboost 的并行线程数。当与其他 Scikit-Learn 算法(如网格搜索)一起使用时,您可以选择并行化哪个算法并平衡线程。创建线程争用将显著减慢两个算法。
gamma (Optional[float]) – (min_split_loss) 在树的叶节点上进行进一步分区所需的最小损失减少量。
min_child_weight (Optional[float]) – 子节点中所需的实例权重(Hessian)的最小和。
sampling_method (Optional[str]) – 采样方法。仅由
hist
树方法的 GPU 版本使用。 -uniform
: 均匀选择随机训练实例。 -gradient_based
: 当梯度和 Hessian 较大时,以更高概率选择随机训练实例。(参见 CatBoost)random_state (Union[numpy.random.mtrand.RandomState, numpy.random._generator.Generator, int, NoneType]) – 随机数种子。 .. 注意:: 使用 shotgun updater 的 gblinear booster 是非确定性的,因为它使用了 Hogwild 算法。
monotone_constraints (Union[Dict[str, int], str, NoneType]) – 变量单调性的约束。更多信息请参见 教程。
interaction_constraints (Union[str, List[Tuple[str]], NoneType]) – 表示允许交互的约束条件。约束条件必须以嵌套列表的形式指定,例如
[[0, 1], [2, 3, 4]]
,其中每个内部列表是一组允许相互交互的特征索引。更多信息请参见 教程。importance_type (Optional[str]) – 特征重要性类型用于feature_importances_属性: * 对于树模型,可以是”gain”、”weight”、”cover”、”total_gain”或”total_cover”。 * 对于线性模型,仅定义了”weight”,它是无偏差的归一化系数。
Added in version 2.0.0.
设备序号,可用选项为 cpu、cuda 和 gpu。
enable_categorical (bool) – 详情请参见
DMatrix
的相同参数。feature_types (Optional[Sequence[str]]) –
Added in version 1.7.0.
用于指定特征类型而不构建数据框。详情请参见
DMatrix
。max_cat_to_onehot (Optional[int]) –
Added in version 1.6.0.
备注
此参数为实验性
决定XGBoost是否应使用独热编码进行分类数据分割的阈值。当类别数量小于阈值时,选择独热编码,否则类别将被分割到子节点中。此外,需要设置 enable_categorical 以支持分类特征。详情请参见 分类数据 和 分类特征的参数。
max_cat_threshold (Optional[int]) –
Added in version 1.7.0.
备注
此参数为实验性
每个分割考虑的最大类别数。仅用于基于分区的分割,以防止过拟合。此外,enable_categorical 需要设置为支持分类特征。详情请参见 分类数据 和 分类特征的参数。
multi_strategy (Optional[str]) –
Added in version 2.0.0.
备注
此参数正在开发中。
用于训练多目标模型的策略,包括多目标回归和多类分类。更多信息请参见 多重输出。
one_output_per_tree
: 每个目标一个模型。multi_output_tree
: 使用多目标树。
eval_metric (Union[str, List[str], Callable, NoneType]) –
Added in version 1.6.0.
用于监控训练结果和提前停止的指标。它可以是一个字符串或字符串列表,作为XGBoost中预定义指标的名称(参见doc/parameter.rst),也可以是
sklearn.metrics
中的一个指标,或者是任何其他类似于 sklearn.metrics 的用户定义指标。如果提供了自定义目标,那么自定义指标应实现相应的反向链接函数。
与 scikit-learn 中常用的 scoring 参数不同,当提供一个可调用对象时,它被假定为一个成本函数,默认情况下 XGBoost 将在早停期间最小化结果。
For advanced usage on Early stopping like directly choosing to maximize instead of minimize, see
xgboost.callback.EarlyStopping
.更多信息请参见 自定义目标和评估指标 和 自定义目标和指标。
from sklearn.datasets import load_diabetes from sklearn.metrics import mean_absolute_error X, y = load_diabetes(return_X_y=True) reg = xgb.XGBRegressor( tree_method="hist", eval_metric=mean_absolute_error, ) reg.fit(X, y, eval_set=[(X, y)])
early_stopping_rounds (Optional[int]) –
Added in version 1.6.0.
激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次以继续训练。这需要在
fit()
中至少有一个 eval_set 项。如果发生早停,模型将有两个额外的属性:
best_score
和best_iteration
。这些属性用于predict()
和apply()
方法,以在推理过程中确定最佳的树的数量。如果用户想要访问完整的模型(包括早停后构建的树),他们可以在这些推理方法中指定 iteration_range。此外,其他实用工具如模型绘图也可以使用整个模型。如果你倾向于在 best_iteration 之后丢弃树,可以考虑使用回调函数
xgboost.callback.EarlyStopping
。如果 eval_set 中有多个项目,最后一个条目将用于提前停止。如果 eval_metric 中有多个指标,最后一个指标将用于提前停止。
callbacks (Optional[List[xgboost.callback.TrainingCallback]]) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. 注意:
kwargs (Optional[Any]) – XGBoost Booster对象的关键字参数。参数的完整文档可以在 这里 找到。尝试通过构造函数参数和 **kwargs 字典同时设置参数将导致 TypeError。 .. 注意:: **kwargs 不支持 scikit-learn **kwargs 不被 scikit-learn 支持。我们不保证通过此参数传递的参数会与 scikit-learn 正确交互。
- apply(X, iteration_range=None)
返回每个样本在每棵树上的预测叶子。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。
- property client: distributed.Client
在此模型中使用的 dask 客户端。Client 对象不能被序列化以进行传输,因此如果任务是从工作进程而不是直接从客户端进程启动的,则需要在该工作进程中设置此属性。
- property coef_: ndarray
Coefficients 属性
备注
系数仅针对线性学习器定义
系数仅在选择线性模型作为基础学习器时定义(booster=gblinear)。对于其他基础学习器类型,如树学习器(booster=gbtree),则未定义。
- 返回:
coef_
- 返回类型:
形状为
[n_features]
或[n_classes, n_features]
的数组
- evals_result()
返回评估结果。
如果将 eval_set 传递给
fit()
函数,你可以调用evals_result()
来获取所有传递的 eval_sets 的评估结果。当 eval_metric 也被传递给fit()
函数时,evals_result 将包含传递给fit()
函数的 eval_metrics。返回的评估结果是一个字典:
{'validation_0': {'logloss': ['0.604835', '0.531479']}, 'validation_1': {'logloss': ['0.41965', '0.17686']}}
- 返回类型:
evals_result
- property feature_importances_: ndarray
特征重要性属性,返回结果取决于 importance_type 参数。当模型使用多类/多标签/多目标数据集训练时,特征重要性是“平均”所有目标的。“平均”是基于重要性类型定义的。例如,如果重要性类型是“total_gain”,那么分数是所有树中每个分裂的损失变化的总和。
- 返回:
feature_importances_ (形状为
[n_features]
的数组,多类情况除外)线性模型,返回形状为 (n_features, n_classes) 的数组
- fit(X, y, *, sample_weight=None, base_margin=None, eval_set=None, verbose=True, xgb_model=None, sample_weight_eval_set=None, base_margin_eval_set=None, feature_weights=None)[源代码]
拟合梯度提升模型。
请注意,多次调用
fit()
将导致模型对象从头开始重新拟合。要从之前的检查点恢复训练,请显式传递xgb_model
参数。- 参数:
X (da.Array | dd.DataFrame) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。当
tree_method
设置为hist
时,内部将使用QuantileDMatrix
而不是DMatrix
以节省内存。然而,当输入数据的设备与算法不匹配时,这会影响性能。例如,如果输入是CPU上的numpy数组,但训练使用cuda
,则数据首先在CPU上处理,然后传输到GPU。y (da.Array | dd.DataFrame | dd.Series) – 标签
sample_weight (da.Array | dd.DataFrame | dd.Series | None) – 实例权重
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
eval_set (Sequence[Tuple[da.Array | dd.DataFrame | dd.Series, da.Array | dd.DataFrame | dd.Series]] | None) – 用于作为验证集的 (X, y) 元组对列表,将计算这些验证集的指标。验证指标将帮助我们跟踪模型的性能。
verbose (int | bool) – 如果 verbose 为 True 并且使用了评估集,验证集上的评估指标会在每次提升阶段打印到标准输出。如果 verbose 是一个整数,评估指标会在每 verbose 次提升阶段打印。最后一次提升阶段或通过 early_stopping_rounds 找到的提升阶段也会被打印。
xgb_model (Booster | XGBModel | None) – 存储的XGBoost模型文件名或’Booster’实例 XGBoost模型,在训练前加载(允许训练继续)。
sample_weight_eval_set (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 形式为 [L_1, L_2, …, L_n] 的列表,其中每个 L_i 是一个类似数组的对象,存储第 i 个验证集的实例权重。
base_margin_eval_set (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 形式为 [M_1, M_2, …, M_n] 的列表,其中每个 M_i 是一个存储第 i 个验证集的基边界的类似数组的对象。
feature_weights (da.Array | dd.DataFrame | dd.Series | None) – 每个特征的权重,定义了在使用colsample时每个特征被选中的概率。所有值必须大于0,否则会抛出 ValueError。
- 返回类型:
- get_booster()
获取此模型的底层 xgboost Booster。
当未调用 fit 时,这将引发异常
- 返回:
booster
- 返回类型:
a xgboost booster of underlying model
- get_metadata_routing()
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回:
routing – 一个封装了路由信息的
MetadataRequest
。- 返回类型:
MetadataRequest
- property intercept_: ndarray
截距(偏差)属性
对于基于树的模型,返回值是 base_score。
- 返回:
拦截_
- 返回类型:
形状为
(1,)
或[n_classes]
的数组
- load_model(fname)
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(X, output_margin=False, validate_features=True, base_margin=None, iteration_range=None)
使用 X 进行预测。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (da.Array | dd.DataFrame) – 用于预测的数据。
output_margin (bool) – 是否输出未经转换的原始边距值。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定
iteration_range=(10, 20)
,那么只有在此期间[10, 20)(半开集)轮次内构建的森林用于此次预测。 .. versionadded:: 1.4.0
- 返回类型:
prediction
- save_model(fname)
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- 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 (array-like of shape (n_samples, n_features)) – 测试样本。对于某些估计器,这可能是一个预计算的核矩阵,或者是一个形状为
(n_samples, n_samples_fitted)
的通用对象列表,其中n_samples_fitted
是用于估计器拟合的样本数量。y (array-like of shape (n_samples,) or (n_samples, n_outputs)) – X 的真值。
sample_weight (array-like of shape (n_samples,), default=None) – 样本权重。
- 返回:
score –
self.predict(X)
相对于 y 的 \(R^2\)。- 返回类型:
备注
在调用回归器的
score
时使用的 \(R^2\) 评分,从版本 0.23 开始使用multioutput='uniform_average'
以保持与r2_score()
的默认值一致。这会影响所有多输出回归器的score
方法(除了MultiOutputRegressor
)。
- set_fit_request(*, base_margin='$UNCHANGED$', base_margin_eval_set='$UNCHANGED$', eval_set='$UNCHANGED$', feature_weights='$UNCHANGED$', sample_weight='$UNCHANGED$', sample_weight_eval_set='$UNCHANGED$', verbose='$UNCHANGED$', xgb_model='$UNCHANGED$')
传递给
fit
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给fit
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给fit
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin
参数的元数据路由。base_margin_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin_eval_set
参数的元数据路由。eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_set
参数的元数据路由。feature_weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中feature_weights
参数的元数据路由。sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight
参数的元数据路由。sample_weight_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight_eval_set
参数的元数据路由。verbose (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中verbose
参数的元数据路由。xgb_model (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中xgb_model
参数的元数据路由。self (DaskXGBRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_params(**params)
设置此估计器的参数。修改了 sklearn 方法以允许未知的 kwargs。这允许使用在 sklearn 网格搜索中未定义为成员变量的 xgboost 参数的完整范围。
- 返回类型:
self
- 参数:
params (Any)
- set_predict_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', output_margin='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict
。如果未提供元数据,则忽略请求。False
: 不请求元数据,元估计器不会将其传递给predict
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中iteration_range
参数的元数据路由。output_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中output_margin
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中validate_features
参数的元数据路由。self (DaskXGBRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_score_request(*, sample_weight='$UNCHANGED$')
传递给
score
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给score
。如果未提供元数据,则忽略请求。False
: 不需要元数据,元估计器不会将其传递给score
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
score
方法中sample_weight
参数的元数据路由。self (DaskXGBRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- class xgboost.dask.DaskXGBRanker(*, objective='rank:pairwise', **kwargs)[源代码]
基类:
DaskScikitLearnBase
,XGBRankerMixIn
XGBoost 排名的 Scikit-Learn API 实现。
Added in version 1.4.0.
更多信息请参见 使用 Scikit-Learn 估计器接口。
- 参数:
grow_policy (Optional[str]) – 树生长策略。 - depthwise: 倾向于在离节点最近的节点进行分割, - lossguide: 倾向于在损失变化最大的节点进行分割。
objective (Union[str, xgboost.sklearn._SklObjWProto, Callable[[Any, Any], Tuple[numpy.ndarray, numpy.ndarray]], NoneType]) – 指定学习任务以及相应的学习目标或自定义目标函数。对于自定义目标,请参阅 自定义目标和评估指标 和 自定义目标和指标 以获取更多信息,以及函数签名的结尾注释。
tree_method (Optional[str]) – 指定要使用的树方法。默认为自动。如果此参数设置为默认,XGBoost 将选择最保守的可用选项。建议从参数文档中研究此选项 树方法
n_jobs (Optional[int]) – 用于运行 xgboost 的并行线程数。当与其他 Scikit-Learn 算法(如网格搜索)一起使用时,您可以选择并行化哪个算法并平衡线程。创建线程争用将显著减慢两个算法。
gamma (Optional[float]) – (min_split_loss) 在树的叶节点上进行进一步分区所需的最小损失减少量。
min_child_weight (Optional[float]) – 子节点中所需的实例权重(Hessian)的最小和。
sampling_method (Optional[str]) – 采样方法。仅由
hist
树方法的 GPU 版本使用。 -uniform
: 均匀选择随机训练实例。 -gradient_based
: 当梯度和 Hessian 较大时,以更高概率选择随机训练实例。(参见 CatBoost)random_state (Union[numpy.random.mtrand.RandomState, numpy.random._generator.Generator, int, NoneType]) – 随机数种子。 .. 注意:: 使用 shotgun updater 的 gblinear booster 是非确定性的,因为它使用了 Hogwild 算法。
monotone_constraints (Union[Dict[str, int], str, NoneType]) – 变量单调性的约束。更多信息请参见 教程。
interaction_constraints (Union[str, List[Tuple[str]], NoneType]) – 表示允许交互的约束条件。约束条件必须以嵌套列表的形式指定,例如
[[0, 1], [2, 3, 4]]
,其中每个内部列表是一组允许相互交互的特征索引。更多信息请参见 教程。importance_type (Optional[str]) – 特征重要性类型用于feature_importances_属性: * 对于树模型,可以是”gain”、”weight”、”cover”、”total_gain”或”total_cover”。 * 对于线性模型,仅定义了”weight”,它是无偏差的归一化系数。
Added in version 2.0.0.
设备序号,可用选项为 cpu、cuda 和 gpu。
enable_categorical (bool) – 详情请参见
DMatrix
的相同参数。feature_types (Optional[Sequence[str]]) –
Added in version 1.7.0.
用于指定特征类型而不构建数据框。详情请参见
DMatrix
。max_cat_to_onehot (Optional[int]) –
Added in version 1.6.0.
备注
此参数为实验性
决定XGBoost是否应使用独热编码进行分类数据分割的阈值。当类别数量小于阈值时,选择独热编码,否则类别将被分割到子节点中。此外,需要设置 enable_categorical 以支持分类特征。详情请参见 分类数据 和 分类特征的参数。
max_cat_threshold (Optional[int]) –
Added in version 1.7.0.
备注
此参数为实验性
每个分割考虑的最大类别数。仅用于基于分区的分割,以防止过拟合。此外,enable_categorical 需要设置为支持分类特征。详情请参见 分类数据 和 分类特征的参数。
multi_strategy (Optional[str]) –
Added in version 2.0.0.
备注
此参数正在开发中。
用于训练多目标模型的策略,包括多目标回归和多类分类。更多信息请参见 多重输出。
one_output_per_tree
: 每个目标一个模型。multi_output_tree
: 使用多目标树。
eval_metric (Union[str, List[str], Callable, NoneType]) –
Added in version 1.6.0.
用于监控训练结果和提前停止的指标。它可以是一个字符串或字符串列表,作为XGBoost中预定义指标的名称(参见doc/parameter.rst),也可以是
sklearn.metrics
中的一个指标,或者是任何其他类似于 sklearn.metrics 的用户定义指标。如果提供了自定义目标,那么自定义指标应实现相应的反向链接函数。
与 scikit-learn 中常用的 scoring 参数不同,当提供一个可调用对象时,它被假定为一个成本函数,默认情况下 XGBoost 将在早停期间最小化结果。
For advanced usage on Early stopping like directly choosing to maximize instead of minimize, see
xgboost.callback.EarlyStopping
.更多信息请参见 自定义目标和评估指标 和 自定义目标和指标。
from sklearn.datasets import load_diabetes from sklearn.metrics import mean_absolute_error X, y = load_diabetes(return_X_y=True) reg = xgb.XGBRegressor( tree_method="hist", eval_metric=mean_absolute_error, ) reg.fit(X, y, eval_set=[(X, y)])
early_stopping_rounds (Optional[int]) –
Added in version 1.6.0.
激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次以继续训练。这需要在
fit()
中至少有一个 eval_set 项。如果发生早停,模型将有两个额外的属性:
best_score
和best_iteration
。这些属性用于predict()
和apply()
方法,以在推理过程中确定最佳的树的数量。如果用户想要访问完整的模型(包括早停后构建的树),他们可以在这些推理方法中指定 iteration_range。此外,其他实用工具如模型绘图也可以使用整个模型。如果你倾向于在 best_iteration 之后丢弃树,可以考虑使用回调函数
xgboost.callback.EarlyStopping
。如果 eval_set 中有多个项目,最后一个条目将用于提前停止。如果 eval_metric 中有多个指标,最后一个指标将用于提前停止。
callbacks (Optional[List[xgboost.callback.TrainingCallback]]) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. 注意:
kwargs (Optional[Any]) – XGBoost Booster对象的关键字参数。参数的完整文档可以在:doc:`这里 </parameter>`找到。尝试通过构造函数参数和**kwargs字典同时设置参数将导致TypeError。 .. 注意:: **kwargs 不支持 scikit-learn **kwargs 不被 scikit-learn 支持。我们不保证通过此参数传递的参数能与 scikit-learn 正确交互。 .. 注意:: 对于 dask 实现,group 不被支持,请使用 qid 代替。
- apply(X, iteration_range=None)
返回每个样本在每棵树上的预测叶子。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。
- property client: distributed.Client
在此模型中使用的 dask 客户端。Client 对象不能被序列化以进行传输,因此如果任务是从工作进程而不是直接从客户端进程启动的,则需要在该工作进程中设置此属性。
- property coef_: ndarray
Coefficients 属性
备注
系数仅针对线性学习器定义
系数仅在选择线性模型作为基础学习器时定义(booster=gblinear)。对于其他基础学习器类型,如树学习器(booster=gbtree),则未定义。
- 返回:
coef_
- 返回类型:
形状为
[n_features]
或[n_classes, n_features]
的数组
- evals_result()
返回评估结果。
如果将 eval_set 传递给
fit()
函数,你可以调用evals_result()
来获取所有传递的 eval_sets 的评估结果。当 eval_metric 也被传递给fit()
函数时,evals_result 将包含传递给fit()
函数的 eval_metrics。返回的评估结果是一个字典:
{'validation_0': {'logloss': ['0.604835', '0.531479']}, 'validation_1': {'logloss': ['0.41965', '0.17686']}}
- 返回类型:
evals_result
- property feature_importances_: ndarray
特征重要性属性,返回结果取决于 importance_type 参数。当模型使用多类/多标签/多目标数据集训练时,特征重要性是“平均”所有目标的。“平均”是基于重要性类型定义的。例如,如果重要性类型是“total_gain”,那么分数是所有树中每个分裂的损失变化的总和。
- 返回:
feature_importances_ (形状为
[n_features]
的数组,多类情况除外)线性模型,返回形状为 (n_features, n_classes) 的数组
- fit(X, y, *, group=None, qid=None, sample_weight=None, base_margin=None, eval_set=None, eval_group=None, eval_qid=None, verbose=False, xgb_model=None, sample_weight_eval_set=None, base_margin_eval_set=None, feature_weights=None)[源代码]
拟合梯度提升排序器
请注意,多次调用
fit()
将导致模型对象从头开始重新拟合。要从之前的检查点恢复训练,请显式传递xgb_model
参数。- 参数:
X (da.Array | dd.DataFrame) – 功能矩阵。有关支持的类型列表,请参阅 各种 XGBoost 函数支持的数据结构 。当这是一个
pandas.DataFrame
或cudf.DataFrame
时,它可能包含一个名为qid
的特殊列,用于指定查询索引。使用特殊列与使用 qid 参数相同,只是它与 sklearn 实用函数(如sklearn.model_selection.cross_validation()
)兼容。同样的约定适用于XGBRanker.score()
和XGBRanker.predict()
。 +—–+—————-+—————-+ | qid | feat_0 | feat_1 | +—–+—————-+—————-+ | 0 | \(x_{00}\) | \(x_{01}\) | +—–+—————-+—————-+ | 1 | \(x_{10}\) | \(x_{11}\) | +—–+—————-+—————-+ | 1 | \(x_{20}\) | \(x_{21}\) | +—–+—————-+—————-+ 当tree_method
设置为hist
时,内部将使用QuantileDMatrix
而不是DMatrix
以节省内存。然而,当输入数据的设备与算法不匹配时,这会影响性能。例如,如果输入是 CPU 上的 numpy 数组,但训练使用cuda
,则数据首先在 CPU 上处理,然后传输到 GPU。y (da.Array | dd.DataFrame | dd.Series) – 标签
group (da.Array | dd.DataFrame | dd.Series | None) – 训练数据中每个查询组的大小。应该有与训练数据中查询组数量相同的元素。如果设置为 None,则用户必须提供 qid。
qid (da.Array | dd.DataFrame | dd.Series | None) – 每个训练样本的查询ID。应具有n_samples的大小。如果设置为None,则用户必须提供组或X中的特殊列。
sample_weight (da.Array | dd.DataFrame | dd.Series | None) –
查询组权重
备注
权重是针对排名任务的每个组别
在排序任务中,每个查询组/ID分配一个权重(而不是每个数据点)。这是因为我们只关心每个组内数据点的相对顺序,因此为单个数据点分配权重是没有意义的。
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
eval_set (Sequence[Tuple[da.Array | dd.DataFrame | dd.Series, da.Array | dd.DataFrame | dd.Series]] | None) – 用于作为验证集的 (X, y) 元组对列表,将计算这些验证集的指标。验证指标将帮助我们跟踪模型的性能。
eval_group (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 一个列表,其中
eval_group[i]
是包含 eval_set 中第i
对所有查询组大小的列表。eval_qid (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 一个列表,其中
eval_qid[i]
是包含 eval_set 中第i
对的查询 ID 的数组。X 中的特殊列约定同样适用于验证数据集。verbose (int | bool) – 如果 verbose 为 True 并且使用了评估集,验证集上的评估指标会在每次提升阶段打印到标准输出。如果 verbose 是一个整数,评估指标会在每 verbose 次提升阶段打印。最后一次提升阶段或通过 early_stopping_rounds 找到的提升阶段也会被打印。
xgb_model (Booster | XGBModel | None) – 存储的XGBoost模型文件名或’Booster’实例 XGBoost模型,在训练前加载(允许训练继续)。
sample_weight_eval_set (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 形式为 [L_1, L_2, …, L_n] 的列表,其中每个 L_i 是第 i 个验证集上的组权重列表。 .. 注意:: 权重是按组分配的,用于排名任务 在排名任务中,每个查询组分配一个权重(而不是每个数据点)。这是因为我们只关心每个组内数据点的相对顺序,因此为单个数据点分配权重是没有意义的。
base_margin_eval_set (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 形式为 [M_1, M_2, …, M_n] 的列表,其中每个 M_i 是一个存储第 i 个验证集的基边界的类似数组的对象。
feature_weights (da.Array | dd.DataFrame | dd.Series | None) – 每个特征的权重,定义了在使用colsample时每个特征被选中的概率。所有值必须大于0,否则会抛出 ValueError。
- 返回类型:
- get_booster()
获取此模型的底层 xgboost Booster。
当未调用 fit 时,这将引发异常
- 返回:
booster
- 返回类型:
a xgboost booster of underlying model
- get_metadata_routing()
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回:
routing – 一个封装了路由信息的
MetadataRequest
。- 返回类型:
MetadataRequest
- property intercept_: ndarray
截距(偏差)属性
对于基于树的模型,返回值是 base_score。
- 返回:
拦截_
- 返回类型:
形状为
(1,)
或[n_classes]
的数组
- load_model(fname)
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(X, output_margin=False, validate_features=True, base_margin=None, iteration_range=None)
使用 X 进行预测。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (da.Array | dd.DataFrame) – 用于预测的数据。
output_margin (bool) – 是否输出未经转换的原始边距值。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定
iteration_range=(10, 20)
,那么只有在此期间[10, 20)(半开集)轮次内构建的森林用于此次预测。 .. versionadded:: 1.4.0
- 返回类型:
prediction
- save_model(fname)
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- set_fit_request(*, base_margin='$UNCHANGED$', base_margin_eval_set='$UNCHANGED$', eval_group='$UNCHANGED$', eval_qid='$UNCHANGED$', eval_set='$UNCHANGED$', feature_weights='$UNCHANGED$', group='$UNCHANGED$', qid='$UNCHANGED$', sample_weight='$UNCHANGED$', sample_weight_eval_set='$UNCHANGED$', verbose='$UNCHANGED$', xgb_model='$UNCHANGED$')
传递给
fit
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给fit
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给fit
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin
参数的元数据路由。base_margin_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin_eval_set
参数的元数据路由。eval_group (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
中eval_group
参数的元数据路由。eval_qid (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_qid
参数的元数据路由。eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_set
参数的元数据路由。feature_weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中feature_weights
参数的元数据路由。group (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
中group
参数的元数据路由。qid (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
中qid
参数的元数据路由。sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight
参数的元数据路由。sample_weight_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight_eval_set
参数的元数据路由。verbose (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中verbose
参数的元数据路由。xgb_model (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中xgb_model
参数的元数据路由。self (DaskXGBRanker)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_params(**params)
设置此估计器的参数。修改了 sklearn 方法以允许未知的 kwargs。这允许使用在 sklearn 网格搜索中未定义为成员变量的 xgboost 参数的完整范围。
- 返回类型:
self
- 参数:
params (Any)
- set_predict_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', output_margin='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict
。如果未提供元数据,则忽略请求。False
: 不请求元数据,元估计器不会将其传递给predict
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中iteration_range
参数的元数据路由。output_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中output_margin
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中validate_features
参数的元数据路由。self (DaskXGBRanker)
- 返回:
self – 更新后的对象。
- 返回类型:
- class xgboost.dask.DaskXGBRFRegressor(*, learning_rate=1, subsample=0.8, colsample_bynode=0.8, reg_lambda=1e-05, **kwargs)[源代码]
-
为 XGBoost 随机森林回归器实现 Scikit-Learn API。
Added in version 1.4.0.
更多信息请参见 使用 Scikit-Learn 估计器接口。
- 参数:
n_estimators (int) – 随机森林中拟合的树的数量。
grow_policy (Optional[str]) – 树生长策略。 - depthwise: 倾向于在离节点最近的节点进行分割, - lossguide: 倾向于在损失变化最大的节点进行分割。
objective (Union[str, xgboost.sklearn._SklObjWProto, Callable[[Any, Any], Tuple[numpy.ndarray, numpy.ndarray]], NoneType]) – 指定学习任务以及相应的学习目标或自定义目标函数。对于自定义目标,请参阅 自定义目标和评估指标 和 自定义目标和指标 以获取更多信息,以及函数签名的结尾注释。
tree_method (Optional[str]) – 指定要使用的树方法。默认为自动。如果此参数设置为默认,XGBoost 将选择最保守的可用选项。建议从参数文档中研究此选项 树方法
n_jobs (Optional[int]) – 用于运行 xgboost 的并行线程数。当与其他 Scikit-Learn 算法(如网格搜索)一起使用时,您可以选择并行化哪个算法并平衡线程。创建线程争用将显著减慢两个算法。
gamma (Optional[float]) – (min_split_loss) 在树的叶节点上进行进一步分区所需的最小损失减少量。
min_child_weight (Optional[float]) – 子节点中所需的实例权重(Hessian)的最小和。
sampling_method (Optional[str]) – 采样方法。仅由
hist
树方法的 GPU 版本使用。 -uniform
: 均匀选择随机训练实例。 -gradient_based
: 当梯度和 Hessian 较大时,以更高概率选择随机训练实例。(参见 CatBoost)random_state (Union[numpy.random.mtrand.RandomState, numpy.random._generator.Generator, int, NoneType]) – 随机数种子。 .. 注意:: 使用 shotgun updater 的 gblinear booster 是非确定性的,因为它使用了 Hogwild 算法。
monotone_constraints (Union[Dict[str, int], str, NoneType]) – 变量单调性的约束。更多信息请参见 教程。
interaction_constraints (Union[str, List[Tuple[str]], NoneType]) – 表示允许交互的约束条件。约束条件必须以嵌套列表的形式指定,例如
[[0, 1], [2, 3, 4]]
,其中每个内部列表是一组允许相互交互的特征索引。更多信息请参见 教程。importance_type (Optional[str]) – 特征重要性类型用于feature_importances_属性: * 对于树模型,可以是”gain”、”weight”、”cover”、”total_gain”或”total_cover”。 * 对于线性模型,仅定义了”weight”,它是无偏差的归一化系数。
Added in version 2.0.0.
设备序号,可用选项为 cpu、cuda 和 gpu。
enable_categorical (bool) – 详情请参见
DMatrix
的相同参数。feature_types (Optional[Sequence[str]]) –
Added in version 1.7.0.
用于指定特征类型而不构建数据框。详情请参见
DMatrix
。max_cat_to_onehot (Optional[int]) –
Added in version 1.6.0.
备注
此参数为实验性
决定XGBoost是否应使用独热编码进行分类数据分割的阈值。当类别数量小于阈值时,选择独热编码,否则类别将被分割到子节点中。此外,需要设置 enable_categorical 以支持分类特征。详情请参见 分类数据 和 分类特征的参数。
max_cat_threshold (Optional[int]) –
Added in version 1.7.0.
备注
此参数为实验性
每个分割考虑的最大类别数。仅用于基于分区的分割,以防止过拟合。此外,enable_categorical 需要设置为支持分类特征。详情请参见 分类数据 和 分类特征的参数。
multi_strategy (Optional[str]) –
Added in version 2.0.0.
备注
此参数正在开发中。
用于训练多目标模型的策略,包括多目标回归和多类分类。更多信息请参见 多重输出。
one_output_per_tree
: 每个目标一个模型。multi_output_tree
: 使用多目标树。
eval_metric (Union[str, List[str], Callable, NoneType]) –
Added in version 1.6.0.
用于监控训练结果和提前停止的指标。它可以是一个字符串或字符串列表,作为XGBoost中预定义指标的名称(参见doc/parameter.rst),也可以是
sklearn.metrics
中的一个指标,或者是任何其他类似于 sklearn.metrics 的用户定义指标。如果提供了自定义目标,那么自定义指标应实现相应的反向链接函数。
与 scikit-learn 中常用的 scoring 参数不同,当提供一个可调用对象时,它被假定为一个成本函数,默认情况下 XGBoost 将在早停期间最小化结果。
For advanced usage on Early stopping like directly choosing to maximize instead of minimize, see
xgboost.callback.EarlyStopping
.更多信息请参见 自定义目标和评估指标 和 自定义目标和指标。
from sklearn.datasets import load_diabetes from sklearn.metrics import mean_absolute_error X, y = load_diabetes(return_X_y=True) reg = xgb.XGBRegressor( tree_method="hist", eval_metric=mean_absolute_error, ) reg.fit(X, y, eval_set=[(X, y)])
early_stopping_rounds (Optional[int]) –
Added in version 1.6.0.
激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次以继续训练。这需要在
fit()
中至少有一个 eval_set 项。如果发生早停,模型将有两个额外的属性:
best_score
和best_iteration
。这些属性用于predict()
和apply()
方法,以在推理过程中确定最佳的树的数量。如果用户想要访问完整的模型(包括早停后构建的树),他们可以在这些推理方法中指定 iteration_range。此外,其他实用工具如模型绘图也可以使用整个模型。如果你倾向于在 best_iteration 之后丢弃树,可以考虑使用回调函数
xgboost.callback.EarlyStopping
。如果 eval_set 中有多个项目,最后一个条目将用于提前停止。如果 eval_metric 中有多个指标,最后一个指标将用于提前停止。
callbacks (Optional[List[xgboost.callback.TrainingCallback]]) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. 注意:
kwargs (Optional[Any]) – XGBoost Booster对象的关键字参数。参数的完整文档可以在 这里 找到。尝试通过构造函数参数和 **kwargs 字典同时设置参数将导致 TypeError。
- apply(X, iteration_range=None)
返回每个样本在每棵树上的预测叶子。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。
- property client: distributed.Client
在此模型中使用的 dask 客户端。Client 对象不能被序列化以进行传输,因此如果任务是从工作进程而不是直接从客户端进程启动的,则需要在该工作进程中设置此属性。
- property coef_: ndarray
Coefficients 属性
备注
系数仅针对线性学习器定义
系数仅在选择线性模型作为基础学习器时定义(booster=gblinear)。对于其他基础学习器类型,如树学习器(booster=gbtree),则未定义。
- 返回:
coef_
- 返回类型:
形状为
[n_features]
或[n_classes, n_features]
的数组
- evals_result()
返回评估结果。
如果将 eval_set 传递给
fit()
函数,你可以调用evals_result()
来获取所有传递的 eval_sets 的评估结果。当 eval_metric 也被传递给fit()
函数时,evals_result 将包含传递给fit()
函数的 eval_metrics。返回的评估结果是一个字典:
{'validation_0': {'logloss': ['0.604835', '0.531479']}, 'validation_1': {'logloss': ['0.41965', '0.17686']}}
- 返回类型:
evals_result
- property feature_importances_: ndarray
特征重要性属性,返回结果取决于 importance_type 参数。当模型使用多类/多标签/多目标数据集训练时,特征重要性是“平均”所有目标的。“平均”是基于重要性类型定义的。例如,如果重要性类型是“total_gain”,那么分数是所有树中每个分裂的损失变化的总和。
- 返回:
feature_importances_ (形状为
[n_features]
的数组,多类情况除外)线性模型,返回形状为 (n_features, n_classes) 的数组
- fit(X, y, *, sample_weight=None, base_margin=None, eval_set=None, verbose=True, xgb_model=None, sample_weight_eval_set=None, base_margin_eval_set=None, feature_weights=None)[源代码]
拟合梯度提升模型。
请注意,多次调用
fit()
将导致模型对象从头开始重新拟合。要从之前的检查点恢复训练,请显式传递xgb_model
参数。- 参数:
X (da.Array | dd.DataFrame) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。当
tree_method
设置为hist
时,内部将使用QuantileDMatrix
而不是DMatrix
以节省内存。然而,当输入数据的设备与算法不匹配时,这会影响性能。例如,如果输入是CPU上的numpy数组,但训练使用cuda
,则数据首先在CPU上处理,然后传输到GPU。y (da.Array | dd.DataFrame | dd.Series) – 标签
sample_weight (da.Array | dd.DataFrame | dd.Series | None) – 实例权重
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
eval_set (Sequence[Tuple[da.Array | dd.DataFrame | dd.Series, da.Array | dd.DataFrame | dd.Series]] | None) – 用于作为验证集的 (X, y) 元组对列表,将计算这些验证集的指标。验证指标将帮助我们跟踪模型的性能。
verbose (int | bool) – 如果 verbose 为 True 并且使用了评估集,验证集上的评估指标会在每次提升阶段打印到标准输出。如果 verbose 是一个整数,评估指标会在每 verbose 次提升阶段打印。最后一次提升阶段或通过 early_stopping_rounds 找到的提升阶段也会被打印。
xgb_model (Booster | XGBModel | None) – 存储的XGBoost模型文件名或’Booster’实例 XGBoost模型,在训练前加载(允许训练继续)。
sample_weight_eval_set (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 形式为 [L_1, L_2, …, L_n] 的列表,其中每个 L_i 是一个类似数组的对象,存储第 i 个验证集的实例权重。
base_margin_eval_set (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 形式为 [M_1, M_2, …, M_n] 的列表,其中每个 M_i 是一个存储第 i 个验证集的基边界的类似数组的对象。
feature_weights (da.Array | dd.DataFrame | dd.Series | None) – 每个特征的权重,定义了在使用colsample时每个特征被选中的概率。所有值必须大于0,否则会抛出 ValueError。
- 返回类型:
- get_booster()
获取此模型的底层 xgboost Booster。
当未调用 fit 时,这将引发异常
- 返回:
booster
- 返回类型:
a xgboost booster of underlying model
- get_metadata_routing()
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回:
routing – 一个封装了路由信息的
MetadataRequest
。- 返回类型:
MetadataRequest
- property intercept_: ndarray
截距(偏差)属性
对于基于树的模型,返回值是 base_score。
- 返回:
拦截_
- 返回类型:
形状为
(1,)
或[n_classes]
的数组
- load_model(fname)
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(X, output_margin=False, validate_features=True, base_margin=None, iteration_range=None)
使用 X 进行预测。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (da.Array | dd.DataFrame) – 用于预测的数据。
output_margin (bool) – 是否输出未经转换的原始边距值。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定
iteration_range=(10, 20)
,那么只有在此期间[10, 20)(半开集)轮次内构建的森林用于此次预测。 .. versionadded:: 1.4.0
- 返回类型:
prediction
- save_model(fname)
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- 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 (array-like of shape (n_samples, n_features)) – 测试样本。对于某些估计器,这可能是一个预计算的核矩阵,或者是一个形状为
(n_samples, n_samples_fitted)
的通用对象列表,其中n_samples_fitted
是用于估计器拟合的样本数量。y (array-like of shape (n_samples,) or (n_samples, n_outputs)) – X 的真值。
sample_weight (array-like of shape (n_samples,), default=None) – 样本权重。
- 返回:
score –
self.predict(X)
相对于 y 的 \(R^2\)。- 返回类型:
备注
在调用回归器的
score
时使用的 \(R^2\) 评分,从版本 0.23 开始使用multioutput='uniform_average'
以保持与r2_score()
的默认值一致。这会影响所有多输出回归器的score
方法(除了MultiOutputRegressor
)。
- set_fit_request(*, base_margin='$UNCHANGED$', base_margin_eval_set='$UNCHANGED$', eval_set='$UNCHANGED$', feature_weights='$UNCHANGED$', sample_weight='$UNCHANGED$', sample_weight_eval_set='$UNCHANGED$', verbose='$UNCHANGED$', xgb_model='$UNCHANGED$')
传递给
fit
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给fit
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给fit
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin
参数的元数据路由。base_margin_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin_eval_set
参数的元数据路由。eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_set
参数的元数据路由。feature_weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中feature_weights
参数的元数据路由。sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight
参数的元数据路由。sample_weight_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight_eval_set
参数的元数据路由。verbose (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中verbose
参数的元数据路由。xgb_model (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中xgb_model
参数的元数据路由。self (DaskXGBRFRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_params(**params)
设置此估计器的参数。修改了 sklearn 方法以允许未知的 kwargs。这允许使用在 sklearn 网格搜索中未定义为成员变量的 xgboost 参数的完整范围。
- 返回类型:
self
- 参数:
params (Any)
- set_predict_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', output_margin='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict
。如果未提供元数据,则忽略请求。False
: 不请求元数据,元估计器不会将其传递给predict
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中iteration_range
参数的元数据路由。output_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中output_margin
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中validate_features
参数的元数据路由。self (DaskXGBRFRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_score_request(*, sample_weight='$UNCHANGED$')
传递给
score
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给score
。如果未提供元数据,则忽略请求。False
: 不需要元数据,元估计器不会将其传递给score
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
score
方法中sample_weight
参数的元数据路由。self (DaskXGBRFRegressor)
- 返回:
self – 更新后的对象。
- 返回类型:
- class xgboost.dask.DaskXGBRFClassifier(*, learning_rate=1, subsample=0.8, colsample_bynode=0.8, reg_lambda=1e-05, **kwargs)[源代码]
-
XGBoost 随机森林分类器的 Scikit-Learn API 实现。
Added in version 1.4.0.
更多信息请参见 使用 Scikit-Learn 估计器接口。
- 参数:
n_estimators (int) – 随机森林中拟合的树的数量。
grow_policy (Optional[str]) – 树生长策略。 - depthwise: 倾向于在离节点最近的节点进行分割, - lossguide: 倾向于在损失变化最大的节点进行分割。
objective (Union[str, xgboost.sklearn._SklObjWProto, Callable[[Any, Any], Tuple[numpy.ndarray, numpy.ndarray]], NoneType]) – 指定学习任务以及相应的学习目标或自定义目标函数。对于自定义目标,请参阅 自定义目标和评估指标 和 自定义目标和指标 以获取更多信息,以及函数签名的结尾注释。
tree_method (Optional[str]) – 指定要使用的树方法。默认为自动。如果此参数设置为默认,XGBoost 将选择最保守的可用选项。建议从参数文档中研究此选项 树方法
n_jobs (Optional[int]) – 用于运行 xgboost 的并行线程数。当与其他 Scikit-Learn 算法(如网格搜索)一起使用时,您可以选择并行化哪个算法并平衡线程。创建线程争用将显著减慢两个算法。
gamma (Optional[float]) – (min_split_loss) 在树的叶节点上进行进一步分区所需的最小损失减少量。
min_child_weight (Optional[float]) – 子节点中所需的实例权重(Hessian)的最小和。
sampling_method (Optional[str]) – 采样方法。仅由
hist
树方法的 GPU 版本使用。 -uniform
: 均匀选择随机训练实例。 -gradient_based
: 当梯度和 Hessian 较大时,以更高概率选择随机训练实例。(参见 CatBoost)random_state (Union[numpy.random.mtrand.RandomState, numpy.random._generator.Generator, int, NoneType]) – 随机数种子。 .. 注意:: 使用 shotgun updater 的 gblinear booster 是非确定性的,因为它使用了 Hogwild 算法。
monotone_constraints (Union[Dict[str, int], str, NoneType]) – 变量单调性的约束。更多信息请参见 教程。
interaction_constraints (Union[str, List[Tuple[str]], NoneType]) – 表示允许交互的约束条件。约束条件必须以嵌套列表的形式指定,例如
[[0, 1], [2, 3, 4]]
,其中每个内部列表是一组允许相互交互的特征索引。更多信息请参见 教程。importance_type (Optional[str]) – 特征重要性类型用于feature_importances_属性: * 对于树模型,可以是”gain”、”weight”、”cover”、”total_gain”或”total_cover”。 * 对于线性模型,仅定义了”weight”,它是无偏差的归一化系数。
Added in version 2.0.0.
设备序号,可用选项为 cpu、cuda 和 gpu。
enable_categorical (bool) – 详情请参见
DMatrix
的相同参数。feature_types (Optional[Sequence[str]]) –
Added in version 1.7.0.
用于指定特征类型而不构建数据框。详情请参见
DMatrix
。max_cat_to_onehot (Optional[int]) –
Added in version 1.6.0.
备注
此参数为实验性
决定XGBoost是否应使用独热编码进行分类数据分割的阈值。当类别数量小于阈值时,选择独热编码,否则类别将被分割到子节点中。此外,需要设置 enable_categorical 以支持分类特征。详情请参见 分类数据 和 分类特征的参数。
max_cat_threshold (Optional[int]) –
Added in version 1.7.0.
备注
此参数为实验性
每个分割考虑的最大类别数。仅用于基于分区的分割,以防止过拟合。此外,enable_categorical 需要设置为支持分类特征。详情请参见 分类数据 和 分类特征的参数。
multi_strategy (Optional[str]) –
Added in version 2.0.0.
备注
此参数正在开发中。
用于训练多目标模型的策略,包括多目标回归和多类分类。更多信息请参见 多重输出。
one_output_per_tree
: 每个目标一个模型。multi_output_tree
: 使用多目标树。
eval_metric (Union[str, List[str], Callable, NoneType]) –
Added in version 1.6.0.
用于监控训练结果和提前停止的指标。它可以是一个字符串或字符串列表,作为XGBoost中预定义指标的名称(参见doc/parameter.rst),也可以是
sklearn.metrics
中的一个指标,或者是任何其他类似于 sklearn.metrics 的用户定义指标。如果提供了自定义目标,那么自定义指标应实现相应的反向链接函数。
与 scikit-learn 中常用的 scoring 参数不同,当提供一个可调用对象时,它被假定为一个成本函数,默认情况下 XGBoost 将在早停期间最小化结果。
For advanced usage on Early stopping like directly choosing to maximize instead of minimize, see
xgboost.callback.EarlyStopping
.更多信息请参见 自定义目标和评估指标 和 自定义目标和指标。
from sklearn.datasets import load_diabetes from sklearn.metrics import mean_absolute_error X, y = load_diabetes(return_X_y=True) reg = xgb.XGBRegressor( tree_method="hist", eval_metric=mean_absolute_error, ) reg.fit(X, y, eval_set=[(X, y)])
early_stopping_rounds (Optional[int]) –
Added in version 1.6.0.
激活早停机制。验证指标需要在每 early_stopping_rounds 轮中至少改善一次以继续训练。这需要在
fit()
中至少有一个 eval_set 项。如果发生早停,模型将有两个额外的属性:
best_score
和best_iteration
。这些属性用于predict()
和apply()
方法,以在推理过程中确定最佳的树的数量。如果用户想要访问完整的模型(包括早停后构建的树),他们可以在这些推理方法中指定 iteration_range。此外,其他实用工具如模型绘图也可以使用整个模型。如果你倾向于在 best_iteration 之后丢弃树,可以考虑使用回调函数
xgboost.callback.EarlyStopping
。如果 eval_set 中有多个项目,最后一个条目将用于提前停止。如果 eval_metric 中有多个指标,最后一个指标将用于提前停止。
callbacks (Optional[List[xgboost.callback.TrainingCallback]]) – 在每次迭代结束时应用的回调函数列表。可以通过使用 回调 API 来使用预定义的回调。 .. 注意:
kwargs (Optional[Any]) – XGBoost Booster对象的关键字参数。参数的完整文档可以在 这里 找到。尝试通过构造函数参数和 **kwargs 字典同时设置参数将导致 TypeError。
- apply(X, iteration_range=None)
返回每个样本在每棵树上的预测叶子。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。
- property client: distributed.Client
在此模型中使用的 dask 客户端。Client 对象不能被序列化以进行传输,因此如果任务是从工作进程而不是直接从客户端进程启动的,则需要在该工作进程中设置此属性。
- property coef_: ndarray
Coefficients 属性
备注
系数仅针对线性学习器定义
系数仅在选择线性模型作为基础学习器时定义(booster=gblinear)。对于其他基础学习器类型,如树学习器(booster=gbtree),则未定义。
- 返回:
coef_
- 返回类型:
形状为
[n_features]
或[n_classes, n_features]
的数组
- evals_result()
返回评估结果。
如果将 eval_set 传递给
fit()
函数,你可以调用evals_result()
来获取所有传递的 eval_sets 的评估结果。当 eval_metric 也被传递给fit()
函数时,evals_result 将包含传递给fit()
函数的 eval_metrics。返回的评估结果是一个字典:
{'validation_0': {'logloss': ['0.604835', '0.531479']}, 'validation_1': {'logloss': ['0.41965', '0.17686']}}
- 返回类型:
evals_result
- property feature_importances_: ndarray
特征重要性属性,返回结果取决于 importance_type 参数。当模型使用多类/多标签/多目标数据集训练时,特征重要性是“平均”所有目标的。“平均”是基于重要性类型定义的。例如,如果重要性类型是“total_gain”,那么分数是所有树中每个分裂的损失变化的总和。
- 返回:
feature_importances_ (形状为
[n_features]
的数组,多类情况除外)线性模型,返回形状为 (n_features, n_classes) 的数组
- fit(X, y, *, sample_weight=None, base_margin=None, eval_set=None, verbose=True, xgb_model=None, sample_weight_eval_set=None, base_margin_eval_set=None, feature_weights=None)[源代码]
拟合梯度提升模型。
请注意,多次调用
fit()
将导致模型对象从头开始重新拟合。要从之前的检查点恢复训练,请显式传递xgb_model
参数。- 参数:
X (da.Array | dd.DataFrame) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。当
tree_method
设置为hist
时,内部将使用QuantileDMatrix
而不是DMatrix
以节省内存。然而,当输入数据的设备与算法不匹配时,这会影响性能。例如,如果输入是CPU上的numpy数组,但训练使用cuda
,则数据首先在CPU上处理,然后传输到GPU。y (da.Array | dd.DataFrame | dd.Series) – 标签
sample_weight (da.Array | dd.DataFrame | dd.Series | None) – 实例权重
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
eval_set (Sequence[Tuple[da.Array | dd.DataFrame | dd.Series, da.Array | dd.DataFrame | dd.Series]] | None) – 用于作为验证集的 (X, y) 元组对列表,将计算这些验证集的指标。验证指标将帮助我们跟踪模型的性能。
verbose (int | bool) – 如果 verbose 为 True 并且使用了评估集,验证集上的评估指标会在每次提升阶段打印到标准输出。如果 verbose 是一个整数,评估指标会在每 verbose 次提升阶段打印。最后一次提升阶段或通过 early_stopping_rounds 找到的提升阶段也会被打印。
xgb_model (Booster | XGBModel | None) – 存储的XGBoost模型文件名或’Booster’实例 XGBoost模型,在训练前加载(允许训练继续)。
sample_weight_eval_set (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 形式为 [L_1, L_2, …, L_n] 的列表,其中每个 L_i 是一个类似数组的对象,存储第 i 个验证集的实例权重。
base_margin_eval_set (Sequence[da.Array | dd.DataFrame | dd.Series] | None) – 形式为 [M_1, M_2, …, M_n] 的列表,其中每个 M_i 是一个存储第 i 个验证集的基边界的类似数组的对象。
feature_weights (da.Array | dd.DataFrame | dd.Series | None) – 每个特征的权重,定义了在使用colsample时每个特征被选中的概率。所有值必须大于0,否则会抛出 ValueError。
- 返回类型:
- get_booster()
获取此模型的底层 xgboost Booster。
当未调用 fit 时,这将引发异常
- 返回:
booster
- 返回类型:
a xgboost booster of underlying model
- get_metadata_routing()
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- 返回:
routing – 一个封装了路由信息的
MetadataRequest
。- 返回类型:
MetadataRequest
- property intercept_: ndarray
截距(偏差)属性
对于基于树的模型,返回值是 base_score。
- 返回:
拦截_
- 返回类型:
形状为
(1,)
或[n_classes]
的数组
- load_model(fname)
从文件或字节数组加载模型。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.load_model("model.json") # or model.load_model("model.ubj")
- predict(X, output_margin=False, validate_features=True, base_margin=None, iteration_range=None)
使用 X 进行预测。如果模型是使用早期停止训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (da.Array | dd.DataFrame) – 用于预测的数据。
output_margin (bool) – 是否输出未经转换的原始边距值。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定用于预测的树层。例如,如果一个随机森林经过100轮训练。指定
iteration_range=(10, 20)
,那么只有在此期间[10, 20)(半开集)轮次内构建的森林用于此次预测。 .. versionadded:: 1.4.0
- 返回类型:
prediction
- predict_proba(X, validate_features=True, base_margin=None, iteration_range=None)
预测每个 X 样本属于给定类别的概率。如果模型是使用早停法训练的,那么会自动使用
best_iteration
。估计器默认使用 inplace_predict,如果数据和估计器之间的设备不匹配,则会回退到使用DMatrix
。备注
此函数仅对 gbtree 和 dart 线程安全。
- 参数:
X (da.Array | dd.DataFrame | dd.Series) – 功能矩阵。查看 各种 XGBoost 函数支持的数据结构 以获取支持的类型列表。
validate_features (bool) – 当此项为 True 时,验证 Booster 和数据的 feature_names 是否相同。否则,假设 feature_names 是相同的。
base_margin (da.Array | dd.DataFrame | dd.Series | None) – 每个实例的全局偏差。详情请参见 拦截。
iteration_range (Tuple[int | integer, int | integer] | None) – 指定在预测中使用哪一层树。例如,如果一个随机森林被训练了100轮。指定 iteration_range=(10, 20),那么只有在这 [10, 20)(半开区间)轮中构建的森林被用于此次预测。
- 返回:
一个形状为 (n_samples, n_classes) 的 numpy 数组,表示每个数据样本属于某一类的概率。
- 返回类型:
prediction
- save_model(fname)
将模型保存到文件中。
模型以XGBoost内部格式保存,该格式在各种XGBoost接口中通用。Python Booster对象的辅助属性(如feature_names)仅在使用JSON或UBJSON(默认)格式时保存。更多信息请参见 模型IO。
model.save_model("model.json") # or model.save_model("model.ubj")
- score(X, y, sample_weight=None)
返回给定测试数据和标签的平均准确率。
在多标签分类中,这是子集准确率,这是一个严格的度量标准,因为你要求每个样本的每个标签集都被正确预测。
- 参数:
X (array-like of shape (n_samples, n_features)) – 测试样本。
y (array-like of shape (n_samples,) or (n_samples, n_outputs)) – X 的真实标签。
sample_weight (array-like of shape (n_samples,), default=None) – 样本权重。
- 返回:
score –
self.predict(X)
相对于 y 的平均准确率。- 返回类型:
- set_fit_request(*, base_margin='$UNCHANGED$', base_margin_eval_set='$UNCHANGED$', eval_set='$UNCHANGED$', feature_weights='$UNCHANGED$', sample_weight='$UNCHANGED$', sample_weight_eval_set='$UNCHANGED$', verbose='$UNCHANGED$', xgb_model='$UNCHANGED$')
传递给
fit
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给fit
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给fit
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin
参数的元数据路由。base_margin_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中base_margin_eval_set
参数的元数据路由。eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中eval_set
参数的元数据路由。feature_weights (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中feature_weights
参数的元数据路由。sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight
参数的元数据路由。sample_weight_eval_set (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中sample_weight_eval_set
参数的元数据路由。verbose (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中verbose
参数的元数据路由。xgb_model (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
fit
方法中xgb_model
参数的元数据路由。self (DaskXGBRFClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_params(**params)
设置此估计器的参数。修改了 sklearn 方法以允许未知的 kwargs。这允许使用在 sklearn 网格搜索中未定义为成员变量的 xgboost 参数的完整范围。
- 返回类型:
self
- 参数:
params (Any)
- set_predict_proba_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict_proba
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict_proba
。如果未提供元数据,则忽略该请求。False
: 不请求元数据,元估计器不会将其传递给predict_proba
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中iteration_range
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict_proba
中的validate_features
参数的元数据路由。self (DaskXGBRFClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_predict_request(*, base_margin='$UNCHANGED$', iteration_range='$UNCHANGED$', output_margin='$UNCHANGED$', validate_features='$UNCHANGED$')
传递给
predict
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给predict
。如果未提供元数据,则忽略请求。False
: 不请求元数据,元估计器不会将其传递给predict
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
base_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中base_margin
参数的元数据路由。iteration_range (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中iteration_range
参数的元数据路由。output_margin (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中output_margin
参数的元数据路由。validate_features (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
predict
方法中validate_features
参数的元数据路由。self (DaskXGBRFClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
- set_score_request(*, sample_weight='$UNCHANGED$')
传递给
score
方法的请求元数据。请注意,此方法仅在
enable_metadata_routing=True
时相关(参见sklearn.set_config()
)。请参阅 用户指南 了解路由机制的工作原理。每个参数的选项是:
True
: 请求元数据,并在提供时传递给score
。如果未提供元数据,则忽略请求。False
: 不需要元数据,元估计器不会将其传递给score
。None
: 不需要元数据,如果用户提供了元数据,元估计器将引发错误。str
: 元数据应使用此给定别名传递给元估计器,而不是原始名称。
默认值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留现有的请求。这允许你更改某些参数的请求,而不更改其他参数。Added in version 1.3.
备注
此方法仅在将此估计器用作元估计器的子估计器时相关,例如在
Pipeline
内部使用。否则它不会有任何效果。- 参数:
sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) –
score
方法中sample_weight
参数的元数据路由。self (DaskXGBRFClassifier)
- 返回:
self – 更新后的对象。
- 返回类型:
PySpark API
PySpark XGBoost 集成接口
- class xgboost.spark.SparkXGBClassifier(*, features_col='features', label_col='label', prediction_col='prediction', probability_col='probability', raw_prediction_col='rawPrediction', pred_contrib_col=None, validation_indicator_col=None, weight_col=None, base_margin_col=None, num_workers=1, use_gpu=None, device=None, force_repartition=False, repartition_random_shuffle=False, enable_sparse_data_optim=False, **kwargs)[源代码]
基类:
_SparkXGBEstimator
,HasProbabilityCol
,HasRawPredictionCol
SparkXGBClassifier 是一个 PySpark ML 估计器。它基于 XGBoost python 库实现了 XGBoost 分类算法,并且可以在 PySpark Pipeline 和 PySpark ML 元算法中使用,例如 -
CrossValidator
/ -TrainValidationSplit
/ -OneVsRest
SparkXGBClassifier 自动支持
xgboost.XGBClassifier
构造函数中的大多数参数,以及xgboost.XGBClassifier.fit()
和xgboost.XGBClassifier.predict()
方法中使用的大多数参数。要启用GPU支持,请将 device 设置为 cuda 或 gpu。
SparkXGBClassifier 也不支持显式设置 base_margin,但支持另一个名为 base_margin_col 的参数。更多详情请参见以下文档。
SparkXGBClassifier 不支持设置 output_margin,但我们可以从原始预测列中获取输出边际。有关更多详细信息,请参阅下面的 raw_prediction_col 参数文档。
SparkXGBClassifier 不支持 validate_features 和 output_margin 参数。
SparkXGBClassifier 不支持设置 nthread xgboost 参数,相反,每个 xgboost 工作者的 nthread 参数将被设置为 spark.task.cpus 配置值。
- 参数:
features_col (str | List[str]) – 当值为字符串时,它要求特征列名称为向量类型。当值为字符串列表时,它要求所有特征列均为数值类型。
label_col (str) – 标签列名称。默认为“label”。
prediction_col (str) – 预测列名称。默认为“prediction”
probability_col (str) – 预测类条件概率的列名。默认为 probabilityCol。
raw_prediction_col (str) – output_margin=True 被 rawPredictionCol 输出列隐式支持,该列总是返回带有预测边际值的结果。
pred_contrib_col (pyspark.ml.param.Param[str]) – 贡献预测列名。
validation_indicator_col (str | None) – 对于与 xgboost.XGBClassifier 训练相关的参数,在有评估数据集监督的情况下,应设置
xgboost.spark.SparkXGBClassifier.validation_indicator_col
参数,而不是在 xgboost.XGBClassifier 的 fit 方法中设置 eval_set 参数。weight_col (str | None) – 要指定训练和验证数据集的权重,请设置
xgboost.spark.SparkXGBClassifier.weight_col
参数,而不是在 xgboost.XGBClassifier 的 fit 方法中设置 sample_weight 和 sample_weight_eval_set 参数。base_margin_col (str | None) – 要指定训练和验证数据集的基本边距,请设置
xgboost.spark.SparkXGBClassifier.base_margin_col
参数,而不是在 xgboost.XGBClassifier 的 fit 方法中设置 base_margin 和 base_margin_eval_set。num_workers (int) – 用于训练的 XGBoost 工作者的数量。每个 XGBoost 工作者对应一个 Spark 任务。
use_gpu (bool | None) –
自 2.0.0 版本弃用.
使用 device 代替。
device (str | None) –
Added in version 2.0.0.
用于XGBoost工作者的设备,可用选项有 cpu、cuda 和 gpu。
force_repartition (bool) – 布尔值,用于指定是否在XGBoost训练之前强制重新分区输入数据集。
repartition_random_shuffle (bool) – 布尔值,用于指定在需要重新分区时是否随机打乱数据集。
enable_sparse_data_optim (bool) – 布尔值,用于指定是否启用稀疏数据优化,如果为 True,Xgboost DMatrix 对象将从稀疏矩阵而不是密集矩阵构建。
kwargs (Any) – 一个xgboost参数的字典,请参考 https://xgboost.readthedocs.io/en/stable/parameter.html
备注
上面的参数表包含需要特殊处理的参数。有关参数的完整列表,请参见下面的 Param(parent=… 条目。
此API是实验性的。
示例
>>> from xgboost.spark import SparkXGBClassifier >>> from pyspark.ml.linalg import Vectors >>> df_train = spark.createDataFrame([ ... (Vectors.dense(1.0, 2.0, 3.0), 0, False, 1.0), ... (Vectors.sparse(3, {1: 1.0, 2: 5.5}), 1, False, 2.0), ... (Vectors.dense(4.0, 5.0, 6.0), 0, True, 1.0), ... (Vectors.sparse(3, {1: 6.0, 2: 7.5}), 1, True, 2.0), ... ], ["features", "label", "isVal", "weight"]) >>> df_test = spark.createDataFrame([ ... (Vectors.dense(1.0, 2.0, 3.0), ), ... ], ["features"]) >>> xgb_classifier = SparkXGBClassifier(max_depth=5, missing=0.0, ... validation_indicator_col='isVal', weight_col='weight', ... early_stopping_rounds=1, eval_metric='logloss') >>> xgb_clf_model = xgb_classifier.fit(df_train) >>> xgb_clf_model.transform(df_test).show()
- copy(extra=None)
创建此实例的一个副本,具有相同的uid和一些额外的参数。默认实现使用
copy.copy()
创建一个浅拷贝,然后将嵌入和额外的参数复制并返回副本。如果默认方法不足,子类应重写此方法。- 参数:
extra (dict, optional) – 复制到新实例的额外参数
self (P)
- 返回:
此实例的副本
- 返回类型:
Params
- explainParam(param)
解释一个单一参数并返回其名称、文档,以及可选的默认值和用户提供的值,结果以字符串形式返回。
- extractParamMap(extra=None)
提取嵌入的默认参数值和用户提供的值,然后将它们与输入中的额外值合并到一个扁平的参数映射中,如果存在冲突,则使用后者的值,即顺序为:默认参数值 < 用户提供的值 < 额外值。
- fit(dataset, params=None)
使用可选参数将模型拟合到输入数据集。
Added in version 1.3.0.
- 参数:
dataset (
pyspark.sql.DataFrame
) – 输入数据集。params (dict or list or tuple, optional) – 一个可选的参数映射,用于覆盖嵌入的参数。如果给定的是参数映射的列表/元组,则会对每个参数映射调用fit,并返回一个模型列表。
- 返回:
拟合模型
- 返回类型:
Transformer
或Transformer
的列表
- fitMultiple(dataset, paramMaps)
将模型拟合到输入数据集,针对 paramMaps 中的每个参数映射。
Added in version 2.3.0.
- 参数:
dataset (
pyspark.sql.DataFrame
) – 输入数据集。paramMaps (
collections.abc.Sequence
) – 一系列参数映射。
- 返回:
一个线程安全的可迭代对象,其中包含每个参数映射的一个模型。每次调用 next(modelIterator) 将返回 (index, model),其中模型是使用 paramMaps[index] 拟合的。index 值可能不是连续的。
- 返回类型:
_FitMultipleIterator
- classmethod read()
返回用于加载估计器的读取器。
- 返回类型:
SparkXGBReader
- uid
对象的唯一ID。
- write()
返回用于保存估计器的写入器。
- 返回类型:
SparkXGBWriter
- class xgboost.spark.SparkXGBClassifierModel(xgb_sklearn_model=None)[源代码]
基类:
_ClassificationModel
由
xgboost.spark.SparkXGBClassifier.fit()
返回的模型备注
此API是实验性的。
- 参数:
xgb_sklearn_model (XGBModel | None)
- copy(extra=None)
创建此实例的一个副本,具有相同的uid和一些额外的参数。默认实现使用
copy.copy()
创建一个浅拷贝,然后将嵌入和额外的参数复制并返回副本。如果默认方法不足,子类应重写此方法。- 参数:
extra (dict, optional) – 复制到新实例的额外参数
self (P)
- 返回:
此实例的副本
- 返回类型:
Params
- explainParam(param)
解释一个单一参数并返回其名称、文档,以及可选的默认值和用户提供的值,结果以字符串形式返回。
- extractParamMap(extra=None)
提取嵌入的默认参数值和用户提供的值,然后将它们与输入中的额外值合并到一个扁平的参数映射中,如果存在冲突,则使用后者的值,即顺序为:默认参数值 < 用户提供的值 < 额外值。
- get_feature_importances(importance_type='weight')
获取每个特征的重要性。重要性类型可以定义为:
‘weight’: 特征在所有树中用于分割数据的次数。
gain: 该特征在所有分割中使用的平均增益。
‘cover’: 该特征在所有分割中使用的平均覆盖率。
total_gain:该特征在所有分割中使用的总增益。
‘total_cover’: 该特征在所有分割中使用的总覆盖率。
- classmethod read()
返回用于加载模型的阅读器。
- 返回类型:
SparkXGBModelReader
- transform(dataset, params=None)
使用可选参数转换输入数据集。
Added in version 1.3.0.
- 参数:
dataset (
pyspark.sql.DataFrame
) – 输入数据集params (dict, optional) – 一个可选的参数映射,用于覆盖嵌入的参数。
- 返回:
转换后的数据集
- 返回类型:
- uid
对象的唯一ID。
- write()
返回用于保存模型的写入器。
- 返回类型:
SparkXGBModelWriter
- class xgboost.spark.SparkXGBRegressor(*, features_col='features', label_col='label', prediction_col='prediction', pred_contrib_col=None, validation_indicator_col=None, weight_col=None, base_margin_col=None, num_workers=1, use_gpu=None, device=None, force_repartition=False, repartition_random_shuffle=False, enable_sparse_data_optim=False, **kwargs)[源代码]
基类:
_SparkXGBEstimator
SparkXGBRegressor 是一个 PySpark ML 估计器。它基于 XGBoost python 库实现了 XGBoost 回归算法,并且可以在 PySpark 管道和 PySpark ML 元算法中使用,例如 -
CrossValidator
/ -TrainValidationSplit
/ -OneVsRest
SparkXGBRegressor 自动支持
xgboost.XGBRegressor
构造函数中的大多数参数,以及xgboost.XGBRegressor.fit()
和xgboost.XGBRegressor.predict()
方法中使用的大多数参数。要启用GPU支持,请将 device 设置为 cuda 或 gpu。
SparkXGBRegressor 也不支持显式设置 base_margin,但支持另一个名为 base_margin_col 的参数。更多详情请参阅以下文档。
SparkXGBRegressor 不支持 validate_features 和 output_margin 参数。
SparkXGBRegressor 不支持设置 nthread xgboost 参数,相反,每个 xgboost 工作者的 nthread 参数将被设置为 spark.task.cpus 配置值。
- 参数:
features_col (str | List[str]) – 当值为字符串时,它要求特征列名称为向量类型。当值为字符串列表时,它要求所有特征列均为数值类型。
label_col (str) – 标签列名称。默认为“label”。
prediction_col (str) – 预测列名称。默认为“prediction”
pred_contrib_col (pyspark.ml.param.Param[str]) – 贡献预测列名。
validation_indicator_col (str | None) – 对于与 xgboost.XGBRegressor 在评估数据集监督下训练相关的参数,请设置
xgboost.spark.SparkXGBRegressor.validation_indicator_col
参数,而不是在 xgboost.XGBRegressor 的 fit 方法中设置 eval_set 参数。weight_col (str | None) – 要指定训练和验证数据集的权重,请设置
xgboost.spark.SparkXGBRegressor.weight_col
参数,而不是在 xgboost.XGBRegressor 的 fit 方法中设置 sample_weight 和 sample_weight_eval_set 参数。base_margin_col (str | None) – 要指定训练和验证数据集的基本边距,请设置
xgboost.spark.SparkXGBRegressor.base_margin_col
参数,而不是在 xgboost.XGBRegressor 的 fit 方法中设置 base_margin 和 base_margin_eval_set。num_workers (int) – 用于训练的 XGBoost 工作者的数量。每个 XGBoost 工作者对应一个 Spark 任务。
use_gpu (bool | None) –
自 2.0.0 版本弃用.
使用 device 代替。
device (str | None) –
Added in version 2.0.0.
用于XGBoost工作者的设备,可用选项有 cpu、cuda 和 gpu。
force_repartition (bool) – 布尔值,用于指定是否在XGBoost训练之前强制重新分区输入数据集。
repartition_random_shuffle (bool) – 布尔值,用于指定在需要重新分区时是否随机打乱数据集。
enable_sparse_data_optim (bool) – 布尔值,用于指定是否启用稀疏数据优化,如果为 True,Xgboost DMatrix 对象将从稀疏矩阵而不是密集矩阵构建。
kwargs (Any) – 一个xgboost参数的字典,请参考 https://xgboost.readthedocs.io/en/stable/parameter.html
备注
上面的参数表包含需要特殊处理的参数。有关参数的完整列表,请参见下面的 Param(parent=… 条目。
此API是实验性的。
示例
>>> from xgboost.spark import SparkXGBRegressor >>> from pyspark.ml.linalg import Vectors >>> df_train = spark.createDataFrame([ ... (Vectors.dense(1.0, 2.0, 3.0), 0, False, 1.0), ... (Vectors.sparse(3, {1: 1.0, 2: 5.5}), 1, False, 2.0), ... (Vectors.dense(4.0, 5.0, 6.0), 2, True, 1.0), ... (Vectors.sparse(3, {1: 6.0, 2: 7.5}), 3, True, 2.0), ... ], ["features", "label", "isVal", "weight"]) >>> df_test = spark.createDataFrame([ ... (Vectors.dense(1.0, 2.0, 3.0), ), ... (Vectors.sparse(3, {1: 1.0, 2: 5.5}), ) ... ], ["features"]) >>> xgb_regressor = SparkXGBRegressor(max_depth=5, missing=0.0, ... validation_indicator_col='isVal', weight_col='weight', ... early_stopping_rounds=1, eval_metric='rmse') >>> xgb_reg_model = xgb_regressor.fit(df_train) >>> xgb_reg_model.transform(df_test)
- copy(extra=None)
创建此实例的一个副本,具有相同的uid和一些额外的参数。默认实现使用
copy.copy()
创建一个浅拷贝,然后将嵌入和额外的参数复制并返回副本。如果默认方法不足,子类应重写此方法。- 参数:
extra (dict, optional) – 复制到新实例的额外参数
self (P)
- 返回:
此实例的副本
- 返回类型:
Params
- explainParam(param)
解释一个单一参数并返回其名称、文档,以及可选的默认值和用户提供的值,结果以字符串形式返回。
- extractParamMap(extra=None)
提取嵌入的默认参数值和用户提供的值,然后将它们与输入中的额外值合并到一个扁平的参数映射中,如果存在冲突,则使用后者的值,即顺序为:默认参数值 < 用户提供的值 < 额外值。
- fit(dataset, params=None)
使用可选参数将模型拟合到输入数据集。
Added in version 1.3.0.
- 参数:
dataset (
pyspark.sql.DataFrame
) – 输入数据集。params (dict or list or tuple, optional) – 一个可选的参数映射,用于覆盖嵌入的参数。如果给定的是参数映射的列表/元组,则会对每个参数映射调用fit,并返回一个模型列表。
- 返回:
拟合模型
- 返回类型:
Transformer
或Transformer
的列表
- fitMultiple(dataset, paramMaps)
将模型拟合到输入数据集,针对 paramMaps 中的每个参数映射。
Added in version 2.3.0.
- 参数:
dataset (
pyspark.sql.DataFrame
) – 输入数据集。paramMaps (
collections.abc.Sequence
) – 一系列参数映射。
- 返回:
一个线程安全的可迭代对象,其中包含每个参数映射的一个模型。每次调用 next(modelIterator) 将返回 (index, model),其中模型是使用 paramMaps[index] 拟合的。index 值可能不是连续的。
- 返回类型:
_FitMultipleIterator
- classmethod read()
返回用于加载估计器的读取器。
- 返回类型:
SparkXGBReader
- uid
对象的唯一ID。
- write()
返回用于保存估计器的写入器。
- 返回类型:
SparkXGBWriter
- class xgboost.spark.SparkXGBRegressorModel(xgb_sklearn_model=None)[源代码]
基类:
_SparkXGBModel
由
xgboost.spark.SparkXGBRegressor.fit()
返回的模型备注
此API是实验性的。
- 参数:
xgb_sklearn_model (XGBModel | None)
- copy(extra=None)
创建此实例的一个副本,具有相同的uid和一些额外的参数。默认实现使用
copy.copy()
创建一个浅拷贝,然后将嵌入和额外的参数复制并返回副本。如果默认方法不足,子类应重写此方法。- 参数:
extra (dict, optional) – 复制到新实例的额外参数
self (P)
- 返回:
此实例的副本
- 返回类型:
Params
- explainParam(param)
解释一个单一参数并返回其名称、文档,以及可选的默认值和用户提供的值,结果以字符串形式返回。
- extractParamMap(extra=None)
提取嵌入的默认参数值和用户提供的值,然后将它们与输入中的额外值合并到一个扁平的参数映射中,如果存在冲突,则使用后者的值,即顺序为:默认参数值 < 用户提供的值 < 额外值。
- get_feature_importances(importance_type='weight')
获取每个特征的重要性。重要性类型可以定义为:
‘weight’: 特征在所有树中用于分割数据的次数。
gain: 该特征在所有分割中使用的平均增益。
‘cover’: 该特征在所有分割中使用的平均覆盖率。
total_gain:该特征在所有分割中使用的总增益。
‘total_cover’: 该特征在所有分割中使用的总覆盖率。
- classmethod read()
返回用于加载模型的阅读器。
- 返回类型:
SparkXGBModelReader
- transform(dataset, params=None)
使用可选参数转换输入数据集。
Added in version 1.3.0.
- 参数:
dataset (
pyspark.sql.DataFrame
) – 输入数据集params (dict, optional) – 一个可选的参数映射,用于覆盖嵌入的参数。
- 返回:
转换后的数据集
- 返回类型:
- uid
对象的唯一ID。
- write()
返回用于保存模型的写入器。
- 返回类型:
SparkXGBModelWriter
- class xgboost.spark.SparkXGBRanker(*, features_col='features', label_col='label', prediction_col='prediction', pred_contrib_col=None, validation_indicator_col=None, weight_col=None, base_margin_col=None, qid_col=None, num_workers=1, use_gpu=None, device=None, force_repartition=False, repartition_random_shuffle=False, enable_sparse_data_optim=False, **kwargs)[源代码]
基类:
_SparkXGBEstimator
SparkXGBRanker 是一个 PySpark ML 估计器。它基于 XGBoost python 库实现了 XGBoost 排序算法,并且可以在 PySpark Pipeline 和 PySpark ML 元算法中使用,如
CrossValidator
/TrainValidationSplit
/OneVsRest
SparkXGBRanker 自动支持
xgboost.XGBRanker
构造函数中的大多数参数,以及xgboost.XGBRanker.fit()
和xgboost.XGBRanker.predict()
方法中使用的大多数参数。要启用GPU支持,请将 device 设置为 cuda 或 gpu。
SparkXGBRanker 也不支持显式设置 base_margin,但支持另一个名为 base_margin_col 的参数。更多详情请参见以下文档。
SparkXGBRanker 不支持设置 output_margin,但我们可以从原始预测列中获取输出边际。有关更多详细信息,请参见下面的 raw_prediction_col 参数文档。
SparkXGBRanker 不支持 validate_features 和 output_margin 参数。
SparkXGBRanker 不支持设置 nthread xgboost 参数,相反,每个 xgboost 工作者的 nthread 参数将被设置为 spark.task.cpus 配置值。
- 参数:
features_col (str | List[str]) – 当值为字符串时,它要求特征列名称为向量类型。当值为字符串列表时,它要求所有特征列均为数值类型。
label_col (str) – 标签列名称。默认为“label”。
prediction_col (str) – 预测列名称。默认为“prediction”
pred_contrib_col (pyspark.ml.param.Param[str]) – 贡献预测列名。
validation_indicator_col (str | None) – 对于与 xgboost.XGBRanker 训练相关的参数,在有评估数据集监督的情况下,设置
xgboost.spark.SparkXGBRanker.validation_indicator_col
参数,而不是在xgboost.XGBRanker
的 fit 方法中设置 eval_set 参数。weight_col (str | None) – 要指定训练和验证数据集的权重,请设置
xgboost.spark.SparkXGBRanker.weight_col
参数,而不是在xgboost.XGBRanker
的 fit 方法中设置 sample_weight 和 sample_weight_eval_set 参数。base_margin_col (str | None) – 要指定训练和验证数据集的基本边距,请设置
xgboost.spark.SparkXGBRanker.base_margin_col
参数,而不是在xgboost.XGBRanker
的 fit 方法中设置 base_margin 和 base_margin_eval_set。qid_col (str | None) – 查询ID列名称。
num_workers (int) – 用于训练的 XGBoost 工作者的数量。每个 XGBoost 工作者对应一个 Spark 任务。
use_gpu (bool | None) –
自 2.0.0 版本弃用.
使用 device 代替。
device (str | None) –
Added in version 2.0.0.
用于XGBoost工作者的设备,可用选项有 cpu、cuda 和 gpu。
force_repartition (bool) – 布尔值,用于指定是否在XGBoost训练之前强制重新分区输入数据集。
repartition_random_shuffle (bool) – 布尔值,用于指定在需要重新分区时是否随机打乱数据集。
enable_sparse_data_optim (bool) – 布尔值,用于指定是否启用稀疏数据优化,如果为 True,Xgboost DMatrix 对象将从稀疏矩阵而不是密集矩阵构建。
kwargs (Any) – 一个xgboost参数的字典,请参考 https://xgboost.readthedocs.io/en/stable/parameter.html
Note: (..) – 上面的参数表包含需要特殊处理的参数。: 有关参数的完整列表,请参见下面的 Param(parent=… 条目。
Note: – 此API为实验性质。:
示例
>>> from xgboost.spark import SparkXGBRanker >>> from pyspark.ml.linalg import Vectors >>> ranker = SparkXGBRanker(qid_col="qid") >>> df_train = spark.createDataFrame( ... [ ... (Vectors.dense(1.0, 2.0, 3.0), 0, 0), ... (Vectors.dense(4.0, 5.0, 6.0), 1, 0), ... (Vectors.dense(9.0, 4.0, 8.0), 2, 0), ... (Vectors.sparse(3, {1: 1.0, 2: 5.5}), 0, 1), ... (Vectors.sparse(3, {1: 6.0, 2: 7.5}), 1, 1), ... (Vectors.sparse(3, {1: 8.0, 2: 9.5}), 2, 1), ... ], ... ["features", "label", "qid"], ... ) >>> df_test = spark.createDataFrame( ... [ ... (Vectors.dense(1.5, 2.0, 3.0), 0), ... (Vectors.dense(4.5, 5.0, 6.0), 0), ... (Vectors.dense(9.0, 4.5, 8.0), 0), ... (Vectors.sparse(3, {1: 1.0, 2: 6.0}), 1), ... (Vectors.sparse(3, {1: 6.0, 2: 7.0}), 1), ... (Vectors.sparse(3, {1: 8.0, 2: 10.5}), 1), ... ], ... ["features", "qid"], ... ) >>> model = ranker.fit(df_train) >>> model.transform(df_test).show()
- copy(extra=None)
创建此实例的一个副本,具有相同的uid和一些额外的参数。默认实现使用
copy.copy()
创建一个浅拷贝,然后将嵌入和额外的参数复制并返回副本。如果默认方法不足,子类应重写此方法。- 参数:
extra (dict, optional) – 复制到新实例的额外参数
self (P)
- 返回:
此实例的副本
- 返回类型:
Params
- explainParam(param)
解释一个单一参数并返回其名称、文档,以及可选的默认值和用户提供的值,结果以字符串形式返回。
- extractParamMap(extra=None)
提取嵌入的默认参数值和用户提供的值,然后将它们与输入中的额外值合并到一个扁平的参数映射中,如果存在冲突,则使用后者的值,即顺序为:默认参数值 < 用户提供的值 < 额外值。
- fit(dataset, params=None)
使用可选参数将模型拟合到输入数据集。
Added in version 1.3.0.
- 参数:
dataset (
pyspark.sql.DataFrame
) – 输入数据集。params (dict or list or tuple, optional) – 一个可选的参数映射,用于覆盖嵌入的参数。如果给定的是参数映射的列表/元组,则会对每个参数映射调用fit,并返回一个模型列表。
- 返回:
拟合模型
- 返回类型:
Transformer
或Transformer
的列表
- fitMultiple(dataset, paramMaps)
将模型拟合到输入数据集,针对 paramMaps 中的每个参数映射。
Added in version 2.3.0.
- 参数:
dataset (
pyspark.sql.DataFrame
) – 输入数据集。paramMaps (
collections.abc.Sequence
) – 一系列参数映射。
- 返回:
一个线程安全的可迭代对象,其中包含每个参数映射的一个模型。每次调用 next(modelIterator) 将返回 (index, model),其中模型是使用 paramMaps[index] 拟合的。index 值可能不是连续的。
- 返回类型:
_FitMultipleIterator
- classmethod read()
返回用于加载估计器的读取器。
- 返回类型:
SparkXGBReader
- uid
对象的唯一ID。
- write()
返回用于保存估计器的写入器。
- 返回类型:
SparkXGBWriter
- class xgboost.spark.SparkXGBRankerModel(xgb_sklearn_model=None)[源代码]
基类:
_SparkXGBModel
由
xgboost.spark.SparkXGBRanker.fit()
返回的模型备注
此API是实验性的。
- 参数:
xgb_sklearn_model (XGBModel | None)
- copy(extra=None)
创建此实例的一个副本,具有相同的uid和一些额外的参数。默认实现使用
copy.copy()
创建一个浅拷贝,然后将嵌入和额外的参数复制并返回副本。如果默认方法不足,子类应重写此方法。- 参数:
extra (dict, optional) – 复制到新实例的额外参数
self (P)
- 返回:
此实例的副本
- 返回类型:
Params
- explainParam(param)
解释一个单一参数并返回其名称、文档,以及可选的默认值和用户提供的值,结果以字符串形式返回。
- extractParamMap(extra=None)
提取嵌入的默认参数值和用户提供的值,然后将它们与输入中的额外值合并到一个扁平的参数映射中,如果存在冲突,则使用后者的值,即顺序为:默认参数值 < 用户提供的值 < 额外值。
- get_feature_importances(importance_type='weight')
获取每个特征的重要性。重要性类型可以定义为:
‘weight’: 特征在所有树中用于分割数据的次数。
gain: 该特征在所有分割中使用的平均增益。
‘cover’: 该特征在所有分割中使用的平均覆盖率。
total_gain:该特征在所有分割中使用的总增益。
‘total_cover’: 该特征在所有分割中使用的总覆盖率。
- classmethod read()
返回用于加载模型的阅读器。
- 返回类型:
SparkXGBModelReader
- transform(dataset, params=None)
使用可选参数转换输入数据集。
Added in version 1.3.0.
- 参数:
dataset (
pyspark.sql.DataFrame
) – 输入数据集params (dict, optional) – 一个可选的参数映射,用于覆盖嵌入的参数。
- 返回:
转换后的数据集
- 返回类型:
- uid
对象的唯一ID。
- write()
返回用于保存模型的写入器。
- 返回类型:
SparkXGBModelWriter