XGBoost原生接口和Sklearn接口参数详解

XGBoost原生接口和Sklearn接口参数详解

  • 数据科学:Scipy、Scikit-Learn笔记
  • 超参数调优:网格搜索,贝叶斯优化(optuna)详解
  • LightGBM原生接口和Sklearn接口参数详解
  • XGBoost
    • 一、Sklearn风格接口
      • xgboost.XGBRegressor参数
        • 一般参数
        • 任务参数(Learning Task Parameters)
        • 其他重要参数
      • XGBRegressor.fit参数
        • 基本参数
        • 可选参数
      • XGBRegressor.predict参数
        • 基本参数
        • 返回值
    • 二、XGBoost原生接口
      • 1. DMatrix 类
      • xgboost参数
        • 通用参数
        • Booster 参数
        • 任务参数
        • 其他参数
      • xgboost.train参数
      • xgboost.predict参数
        • 返回值
      • xgboost可视化

数据科学:Scipy、Scikit-Learn笔记

超参数调优:网格搜索,贝叶斯优化(optuna)详解

LightGBM原生接口和Sklearn接口参数详解

XGBoost

一、Sklearn风格接口

xgboost.XGBRegressor参数

一般参数

这些参数适用于 XGBoost 的核心算法,不特定于某个特定的弱学习器(如决策树)。

  1. max_depth (默认: 3)
    类型: int
    描述: 决策树的最大深度。限制树的生长高度,防止过拟合。值越大,模型可能更复杂,容易过拟合;值越小,模型可能欠拟合。
  2. learning_rate (默认: 0.1)
    类型: float
    描述: 学习率或步长。控制每次迭代中单个新树对最终模型影响的大小。较小的值(如 0.01 或 0.05)有助于降低过拟合风险,但可能需要更多的迭代次数(即更大的 n_estimators)。较大的值可以加速收敛,但可能导致模型不稳定或过拟合。
  3. n_estimators (默认: 100)
    类型: int
    描述: 弱学习器(树)的数量。增加此值会构建更多棵树,通常能提高模型的拟合能力,但也可能增加训练时间和模型复杂度。
  4. silent (默认: True)
    类型: bool
    描述: 是否禁用运行时信息输出。设为 False 可以显示训练过程中的进度信息。
  5. objective (默认: ‘reg:squarederror’)
    类型: str
    描述: 回归任务的目标函数。对于 XGBRegressor,默认设置为均方误差(Mean Squared Error, MSE),表示为 ‘reg:squarederror’。其他可用选项包括 ‘reg:linear’(线性回归)和 ‘reg:logistic’(逻辑回归,但通常用于二分类问题,此处不适用)。
  6. booster (默认: ‘gbtree’)
    类型: str
    描述: 使用的弱学习器类型。‘gbtree’ 表示基于树的提升(通常选择),另一种可选的是 ‘gblinear’,表示基于线性模型的提升。
  7. n_jobs (默认: 1)
    类型: int
    描述: 并行计算时使用的 CPU 核数。设置为 -1 则使用所有可用核。对于多核系统,增大此值可以加快训练速度。
  8. nthread (已弃用,用 n_jobs 替代)
    类型: int
    描述: 旧版本中用于指定线程数的参数,现已不再推荐使用,应改用 n_jobs。
    弱评估器参数(Booster Parameters)
    这些参数针对具体的弱学习器(如决策树)进行设置。
  9. gamma (默认: 0)
    类型: float
    描述: 分裂节点所需的最小损失减少量。较高的 gamma 值会限制树的复杂度,防止过拟合。
  10. min_child_weight (默认: 1)
    类型: float
    描述: 子节点所包含样本权重的最小和。较大的值可以防止模型学习到噪声或过于复杂的模式,避免过拟合。
任务参数(Learning Task Parameters)

这些参数与特定的学习任务相关,如正则化、采样等。

  1. reg_alpha (默认: 0)
    类型: float
    描述: L1 正则化项的权重。非零值有助于简化模型,防止过拟合。
  2. reg_lambda (默认: 1)
    类型: float
    描述: L2 正则化项的权重。非零值有助于平滑模型,防止过拟合。
  3. subsample (默认: 1.0)
    类型: float (0, 1]
    描述: 训练过程中每个树构建时使用的样本比例。小于 1 的值可以引入随机性,有助于减少过拟合,相当于随机森林中的子采样。
  4. colsample_bytree (默认: 1.0)
    类型: float (0, 1]
    描述: 每棵树构建时考虑的特征比例。小于 1 的值可以引入特征的随机子集,有助于减少过拟合。
  5. colsample_bylevel (默认: 1.0)
    类型: float (0, 1]
    描述: 在树构建过程中各层级分裂时考虑的特征比例。类似于 colsample_bytree,但应用于每一层而不是每棵树。
  6. random_state (默认: None)
    类型: int, RandomState instance, or None
    描述: 随机数生成器种子或实例,用于确定随机性行为,如特征和样本的子采样。设置一个固定值可以确保实验的可复现性。
其他重要参数
  1. eval_metric (默认取决于 objective)
    类型: str, callable, list/tuple of str or list/tuple of callable
    描述: 评估模型性能的度量标准。对于回归任务,常见的内置指标包括 ‘rmse’(均方根误差)、‘mae’(平均绝对误差)等。
  2. early_stopping_rounds (默认: None)
    类型: int
    描述: 当验证集上的性能在一定轮数内未提升时,提前终止训练。配合 eval_set 和 eval_metric 使用,有助于防止过拟合并节省计算资源。
  3. verbose (默认: 0)
    类型: int
    描述: 控制训练过程中输出详细信息的程度。大于 0 的值将打印更多中间结果。

XGBRegressor.fit参数

基本参数
  1. X (必需)
    类型: array-like, DataFrame, DMatrix
    描述: 训练数据,二维数组或类似结构,其中包含特征向量。数据类型可以是 NumPy 数组、Pandas DataFrame 或 XGBoost 自带的 DMatrix 数据结构。
  2. y (必需)
    类型: array-like, Series, DMatrix
    描述: 目标变量,一维数组或类似结构,包含连续数值型的响应变量。数据类型可以是 NumPy 数组、Pandas Series 或 XGBoost DMatrix。
可选参数
  1. sample_weight (默认: None)
    类型: array-like (shape (n_samples,))
    描述: 样本权重。如果提供,将在训练过程中对每个样本赋予相应的权重,用于调整不同样本对模型学习的影响。权重越高,对应样本在训练中的作用越大。
  2. eval_set (默认: None)
    类型: list of (array-like, array-like) or list of DMatrix
    描述: 用于模型评估的额外数据集列表,通常用于早停(early stopping)或监控训练过程中的性能。每个元素是一个元组,包含特征数据和相应的目标变量,格式与 (X, y) 相同。例如:[(X_val, y_val), (X_test, y_test)]。
  3. eval_metric (默认: 取决于 objective)
    类型: str, callable, list/tuple of str or list/tuple of callable
    描述: 在训练过程中用于评估模型性能的度量标准。可以是一个字符串(代表内置评估指标),一个自定义函数,或它们的组合。对于回归任务,常用的内置指标包括 ‘rmse’(均方根误差)、‘mae’(平均绝对误差)等。当提供了多个评估指标时,输出将按提供的顺序显示。
  4. early_stopping_rounds (默认: None)
    类型: int
    描述: 当在 eval_set 上指定的评估指标在一定轮训练。这对于防止过拟合和数内未提升时,提前终止节省计算资源非常有用。例如,设置为 50 表示如果连续 50 轮后验证集上的性能没有提升,则停止训练。
  5. verbose (默认: 0)
    类型: int
    描述: 控制训练过程中输出详细信息的程度。值越大,输出的信息越多。当设为 1 时,通常会显示每轮迭代后的评估指标;设为 0 则不显示。
  6. callbacks (默认: None)
    类型: list of callable objects
    描述: 用户定义的回调函数列表,这些函数将在训练过程中特定时刻被调用。可用于实现自定义的日志记录、模型保存等行为。
  7. base_margin (默认: None)
    类型: array-like
    描述: 用于初始化预测值(基线偏移)的一维数组。仅在高级用法中使用,通常情况下保持默认值即可。
  8. sample_weight_eval_set (默认: None)
    类型: list of arrays, description: 与 eval_set same length aseval_set- 中每个数据集对应的样本权重。若提供,将在评估这些数据集时使用对应的权重。
  9. feature_weights (默认: None)
    类型: array-like
    描述: 特征的权重。在树构建过程中,可以用来调节不同特征的重要性。非零值会改变分裂节点时的增益计算方式。
  10. categorical_feature (默认: None)
    类型: list, int, dict
    描述: 指定哪些特征是类别特征(离散特征)。可以是特征索引的列表、掩码数组,或字典(键为特征索引,值为类别数)。

XGBRegressor.predict参数

基本参数
  • data (必需)
    类型: array-like, DataFrame, DMatrix
    描述: 待预测数据,二维数组或类似结构,其中包含特征向量。数据类型可以是 NumPy 数组、Pandas DataFrame 或 XGBoost 自带的 DMatrix 数据结构。其列应与训练数据 X 的列相同,表示同样的特征。
    可选参数
  • output_margin (默认: False)
    类型: bool
    描述: 如果设置为 True,将返回模型原始的未经转换的输出(边际)。对于回归任务,这通常是每个样本的预测值。如果设置为 False(默认),则返回经过目标函数转换后的预测值,如对于 ‘reg:squarederror’ 目标函数,返回的是直接的预测值。
  • ntree_limit (默认: 0)
    类型: int
    描述: 限制用于预测的树的数量。若设为 0(默认),则使用所有已训练的树进行预测。非零值表示只使用前 ntree_limit 棵树进行预测。这个参数可用于探索模型在训练过程中不同阶段的表现,或者在早停后仅使用最优轮次的模型进行预测。
  • validate_features (默认: True)
    类型: bool
    描述: 检查预测数据 data 的特征是否与训练数据中的特征一致。如果设置为 True(默认),预测时会检查特征名称和类型是否匹配。如果特征不一致,会抛出异常。设置为 False 可以禁用此检查,但在实际应用中应谨慎使用,以避免因特征不匹配导致的预测错误。
  • base_margin (默认: None)
    类型: array-like
    描述: 用于初始化预测值(基线偏移)的一维数组。仅在高级用法中使用,通常情况下保持默认值即可。
  • iteration_range (默认: (0, num_boosted_rounds),其中 num_boosted_rounds 为模型训练的总轮数)
    类型: tuple (start, end)
    描述: 限制用于预测的树的范围。(start, end) 表示从第 start 棵树开始,直到第 end - 1 棵树结束(包含 start,不包含 end)。这对分析模型在不同训练阶段的表现或仅使用部分树进行预测很有用。
返回值
  • 类型: numpy.ndarray

描述: 返回一个一维 NumPy 数组,包含对 data 中每个样本的预测值。数组长度与 data 的行数相同。

二、XGBoost原生接口

kfold = KFold(n_splits=5, random_state=42, shuffle=True)mse = 0
for fold, (train_index, val_index) in enumerate(kfold.split(x, y)):logging.info(f'############ fold: {fold} ###########')x_train, x_val, y_train, y_val = x.iloc[train_index], x.iloc[val_index], y.iloc[train_index], y.iloc[val_index]trainset = Dataset(x_train, y_train)valset = Dataset(x_val, y_val)model = lgb.train(params_lgb, trainset, valid_sets=[trainset, valset], categorical_feature=["分"], callbacks=[lgb.log_evaluation(1000)])model.save_model("../models/lgb_%d.txt" % fold)model_lgb.append(model)lgb_pred = Series(model.predict(x_val, num_iteration=model.best_iteration), index=y_val.index).fillna(0)trainset = DMatrix(x_train, y_train, enable_categorical=True, nthread=-1)valset = DMatrix(x_val, y_val, enable_categorical=True, nthread=-1)model = xgb.train(params_xgb, trainset, evals=[(trainset, 'train'),(valset, 'eval')], num_boost_round=params_xgb["num_boost_round"], early_stopping_rounds=params_xgb["early_stopping_rounds"], verbose_eval=1000)model.save_model("../models/xgb_%d.json" % fold)model_xgb.append(model)xgb_pred = Series(model.predict(valset, iteration_range=(0, model.best_ntree_limit)), index=y_val.index).fillna(0)val_pred = (lgb_pred + xgb_pred) / 2mse += mean_squared_error(y_val.fillna(0), val_pred)
rmse = np.sqrt(mse / kfold.n_splits)
score = 1 / (1 + rmse)
logging.info(f"--------------本地分数 {score}--------------")

1. DMatrix 类

在使用 XGBoost 原生接口时,首先要将数据转换为 xgboost.DMatrix 对象,它是 XGBoost 库专门设计的数据结构,能够高效地存储和处理大量数据,特别是对于稀疏矩阵。

DMatrix 支持多种构造参数,如:

  • missing: 缺失值标记,默认为 NaN。可以指定其他缺失值标识符。
  • weight: 样本权重。 base_margin: 基线偏移。
  • label: 目标变量(仅在没有提供标签文件路径时需要)。
  • feature_names: 特征名称列表。
  • feature_types: 特征类型列表,如 ‘q’(量化特征)、‘i’(整数特征)、‘f’(浮点特征)等。
  • enable_categorical: 是否启用类别特征支持(仅在 XGBoost 1.6+ 版本中)。

xgboost参数

  • 通用参数(General Parameters):影响整个梯度提升模型的构建和运行方式。
  • Booster 参数(Booster Parameters):与特定的弱学习器(如决策树)有关,用于控制单个基础模型的构建细节。
  • 任务参数(Learning Task Parameters):与特定的学习任务(如回归、分类)及正则化相关,影响模型在解决具体问题时的行为。
  • 其他参数(Miscellaneous Parameters):包括模型输出、数据处理、并行计算等方面的设置。
通用参数

objective

类型: str
描述: 指定目标函数,决定了模型优化的目标。对于回归任务,常见的选项有 ‘reg:squarederror’(均方误差)、‘reg:linear’(线性回归)、‘reg:logistic’(逻辑回归,常用于二分类问题)等。

booster

类型: str
描述: 指定使用的弱学习器类型。对于回归问题,通常选择 ‘gbtree’(基于树的提升),另一个选项是 ‘gblinear’(基于线性模型的提升)。

verbosity

类型: int
描述: 控制日志输出的详细程度。值越大,输出的信息越多。通常设为 0 或 1。

n_estimators / num_boost_round

类型: int
描述: 指定要构建的提升树(弱学习器)数量。增加该值通常可以提高模型的拟合能力,但可能会增加训练时间和过拟合风险。

eta / learning_rate

类型: float
描述: 学习率或步长,控制每一步迭代中单个新树对最终模型影响的大小。较小的值可以减缓学习速度,有助于防止过拟合,但可能需要更多的迭代次数;较大的值可以加速收敛,但可能导致模型不稳定。

gamma

类型: float
描述: 分裂节点所需的最小损失减少量。较高的值会限制树的复杂度,防止过拟合。

max_depth

类型: int
描述: 决策树的最大深度。限制树的生长高度,防止过拟合。值越大,模型可能更复杂,容易过拟合;值越小,模型可能欠拟合。

min_child_weight

类型: float
描述: 子节点所包含样本权重的最小和。较大值有助于防止模型学习到噪声或过于复杂的模式,避免过拟合。

subsample / colsample_bytree

类型: float (0, 1]
描述: 分别控制训练样本和特征的子采样比例。小于 1
的值可以引入随机性,有助于减少过拟合,类似于随机森林中的子采样。

lambda / reg_lambda / alpha / reg_alpha

类型: float
描述: L1 (reg_alpha) 和 L2 (reg_lambda) 正则化项的权重。非零值有助于简化模型,防止过拟合。

n_jobs / nthread

类型: int
描述: 并行计算时使用的 CPU 核数。设置为 -1 则使用所有可用核。增大此值可以加快训练速度。

Booster 参数

max_delta_step

类型: float
描述: 控制每棵树的权重更新幅度。对于某些数据集(如不平衡数据),有助于稳定模型训练。

tree_method

类型: str
描述: 指定树构建算法。常见选项包括 ‘auto’(自动选择)、‘exact’(精确贪心)、‘approx’(近似贪心)、‘hist’(基于直方图的构建)等。

grow_policy

类型: str
描述: 决策树增长策略。 ‘depthwise’(深度优先)或 ‘lossguide’(损失导向)。

monotone_constraints

类型: str 或 list
描述: 对特征施加单调性约束。例如,要求某个特征与目标变量的关系为单调递增或递减。

任务参数

scale_pos_weight

类型: float
描述: 仅对二分类任务有效,用于平衡正负类样本的权重。对于类别不平衡数据集,可以调整该参数来提高少数类样本的重要性。

base_score

类型: float
描述: 初始预测分数(基线分数)。仅在使用非零基线时有意义。

eval_metric

类型: str, callable, list/tuple of str or list/tuple of callable
描述: 指定评估模型性能的度量标准。内置指标包括 ‘rmse’、‘mae’、‘auc’、‘logloss’ 等。也可以自定义评估函数。

其他参数

random_state / seed

类型: int, RandomState instance, or None
描述: 随机数生成器种子或实例,用于确定随机性行为,如特征和样本的子采样。设置一个固定值可以确保实验的可复现性。

missing

类型: float 或 str
描述: 缺失值标记。可以是浮点数或字符串(如 ‘nan’),用于指示数据中的缺失值。

disable_default_eval_metric

类型: bool
描述: 是否禁用目标函数默认的评估指标。设为 True 可以仅使用自定义的 eval_metric。

xgboost.train参数

  1. params (必需)
    类型: dict
    描述: 包含训练参数的字典。这些参数会影响模型的构建和优化过程。常见参数包括:

  2. dtrain (必需)
    类型: xgboost.DMatrix
    描述: 包含训练数据和标签的 DMatrix 对象。这是 XGBoost 专为高效处理大规模数据设计的数据结构。

  3. evals (可选)
    类型: list of (xgboost.DMatrix, str) tuples
    描述: 用于模型评估和早停的数据集列表。每个元素是一个元组,包含特征数据和对应的目标变量,以及一个名称标识符。

  4. eval_names (可选)
    类型: list of str
    描述: 与 evals 中数据集对应的名称列表。如果提供,将用于打印评估结果的标签。如果不提供,将使用 evals 中的第二元素作为名称。

  5. obj (可选)
    类型: callable
    描述: 自定义目标函数。当内置目标函数无法满足需求时,可以通过此参数提供一个自定义的目标函数。函数签名应为 func(preds, dtrain),其中 preds 是预测值,dtrain 是包含真实标签的 DMatrix。

  6. feval (可选)
    类型: callable
    描述: 自定义评估函数。用于计算评估指标,特别是在内置评估指标不适用的情况下。函数签名应为 func(preds, dtrain),其中 preds 是预测值,dtrain 是包含真实标签的 DMatrix。

  7. early_stopping_rounds (可选)
    类型: int
    描述: 当在 evals 中指定的评估指标在一定轮数内未提升时,提前终止训练。这对于防止过拟合和节省计算资源非常有用。例如,设置为 50 表示如果连续 50 轮后验证集上的性能没有提升,则停止训练。

  8. verbose_eval (可选)
    类型: bool 或 int
    描述: 控制训练过程中输出详细信息的程度。如果为 True 或正整数,将在每个验证周期输出评估结果。当设为正整数时,表示每隔这么多轮输出一次。设为 False 则不显示任何中间输出。

  9. callbacks (可选)
    类型: list of xgboost.callback.TrainingCallback instances
    描述: 用户定义的回调函数列表,这些函数将在训练过程中特定时刻被调用。可用于实现自定义的日志记录、模型保存等行为。

  10. custom_metric (可选)
    类型: callable
    描述: 自定义评估指标,用于替代 feval 参数。在 XGBoost 1.6 及更高版本中,推荐使用 custom_metric 替代 feval。

xgboost.predict参数

  • data (必需)
    类型: xgboost.DMatrix 或 numpy.array、pandas.DataFrame(在某些条件下)
    描述: 待预测数据,必须与训练数据具有相同的特征空间。推荐使用 xgboost.DMatrix 类型,因为它针对 XGBoost 优化,具有更好的性能。也可以使用 numpy.array 或 pandas.DataFrame,但需确保它们与训练数据格式兼容,并且在必要时进行适当转换。
  • output_margin (可选)
    类型: bool
    描述: 控制是否返回模型的原始边际输出。默认为 False。设为 True 时,返回的是未经目标函数转换的预测值。对于回归任务,这通常是每个样本的预测值。设为 False(默认)时,返回经过目标函数转换后的预测值,如对于 ‘reg:squarederror’ 目标函数,返回的是直接的预测值。
  • ntree_limit (可选)
    类型: int
    描述: 限制用于预测的树的数量。若设为 0(默认),则使用所有已训练的树进行预测。非零值表示只使用前 ntree_limit 棵树进行预测。这个参数可用于探索模型在训练过程中不同阶段的表现,或者在早停后仅使用最优轮次的模型进行预测。
  • validate_features (可选)
    类型: bool
    描述: 检查预测数据 data 的特征是否与训练数据中的特征一致。如果设置为 True(默认),预测时会检查特征名称和类型是否匹配。如果特征不一致,会抛出异常。设置为 False 可以禁用此检查,但在实际应用中应谨慎使用,以避免因特征不匹配导致的预测错误。
  • base_margin (可选)
    类型: numpy.array
    描述: 用于初始化预测值(基线偏移)的一维数组。仅在高级用法中使用,通常情况下保持默认值即可。
  • iteration_range (可选)
    类型: tuple (start, end)
    描述: 限制用于预测的树的范围。(start, end) 表示从第 start 棵树开始,直到第 end - 1 棵树结束(包含 start,不包含 end)。这对分析模型在不同训练阶段的表现或仅使用部分树进行预测很有用。
  • pred_leaf (可选)
    类型: bool
    描述: 控制是否返回每个样本落在各个决策树叶子节点的索引。设为 True 时,返回一个二维数组,形状为 (样本数, 树的数量),每个元素表示对应样本在对应树中的叶子节点索引。默认为 False。
  • pred_contribs (可选)
    类型: bool
    描述: 控制是否返回每个特征对预测值的贡献。设为 True 时,返回一个三维数组,形状为 (样本数, 树的数量, 特征数),每个元素表示对应样本在对应树中由对应特征带来的预测值增量。默认为 False。
  • approx_contribs (可选)
    类型: bool
    描述: (仅限二分类)控制是否使用近似方法计算特征贡献。仅在 pred_contribs=True 时生效。设为 True 可以加速计算,但精度可能降低。默认为 False。
返回值
  • 类型: numpy.ndarray

描述: 返回一个一维或二维(取决于 pred_leaf 或 pred_contribs 是否启用)NumPy 数组,包含对 data 中每个样本的预测结果。数组形状和内容取决于所选参数。

xgboost可视化

  1. xgboost.plot_importance
    作用: 绘制特征重要性的条形图,展示每个特征对模型预测能力的相对贡献。
    参数:

booster: 已训练好的 XGBoost 模型对象。 importance_type: 特征重要性度量类型,可选 ‘weight’(基于节点分裂次数)、‘gain’(基于节点增益)、‘cover’(基于节点覆盖样本数)或 ‘total_gain’(总增益,仅限回归)。

max_num_features: 显示的最大特征数(默认为 None,即显示所有特征)。

height: 图形的高度(默认为 0…png`,即创建新的图形)。

xlabel: X 轴标签(默认为 ‘Features’)。

ylabel: Y 轴标签(默认为 ‘Importance’)。

title: 图形标题(默认为 ‘Feature Importance’)。

ax: matplotlib.axes.Axes 对象,用于绘制图形。如果不提供,将创建一个新的图形。

  1. xgboost.plot_split_value_histogram
    作用: 绘制特征分裂阈值的直方图,帮助理解模型在构建决策树时如何分割特征。
    参数:

booster: 已训练好的 XGBoost 模型对象。

feature_names: 特征名称列表,用于标签化 X 轴。

max_bins: 每个特征的最大分箱数(默认为 30)。

ax: matplotlib.axes.Axes 对象,用于绘制图形。如果不提供,将创建一个新的图形。

  1. xgboost.to_graphviz
    作用: 将单个决策树转换为 Graphviz 格式,以便使用外部工具(如 graphviz 库或在线工具)进一步渲染成高质量的图形。
    参数:

booster: 已训练好的 XGBoost 模型对象。

num_trees: 要转换的树的索引(默认为 0,即第一棵树)。

rankdir: 图形的方向,同 plot_tree 函数。

hide_feature_names: 是否隐藏特征名称(默认为 False)。

precision: 浮点数表示的精度(默认为 3)。

import xgboost as xgb
import matplotlib.pyplot as plt# 假设已有一个训练好的 XGBoost 模型:model# 绘制第一个决策树
xgb.plot_tree(model, num_trees=0)
plt.show()# 绘制特征重要性
xgb.plot_importance(model)
plt.show()# 绘制特征分裂阈值直方图
# 注意:此处假设 `feature_names` 已知
xgb.plot_split_value_histogram(model, feature_names)
plt.show()# 将第一个决策树转换为 Graphviz 格式
gviz = xgb.to_graphviz(model, num_trees=0)# 使用 graphviz 库渲染图形(需先安装 graphviz)
from graphviz import Source
Source.from_file(gviz).view()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/2950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于瞬时频率的语言信号清/浊音判决和高音检测(MATLAB R2021)

语音是由气流激励声道从嘴唇或鼻孔辐射出来而产生的。根据声带是否振动,发音可分为浊音和清音。浊音和清音有明显的区别,浊音具有周期信号的特征,而清音则具有随机噪声的特征;浊音在频域上具有共振峰结构,其能量主要集…

⑤【Shiro】SpringBoot整合Shiro,实现登录认证

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ ⑤【Shiro】SpringBoot整合Shiro,实…

AI助力科研创新与效率双提升:ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写

2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在…

计算机网络4——网络层2

文章目录 一、地址解析协议ARP二、IP数据报格式1、IP 数据报首部的固定部分中的各字段2、IP 数据报首部的可变部分 三、IP 层转发分组的过程1、流程2、案例分析3、最长前缀匹配4、分组转发算法5、使用二叉线索查找转发表 一、地址解析协议ARP 在实际应用中,我们经常…

深度学习推理框架汇总

深度学习推理框架汇总 TensorFlow Serving:TensorFlow Serving 是 TensorFlow 的官方模型服务框架,专门用于部署 TensorFlow 模型。它提供了高性能、可扩展、灵活的模型部署和推理服务。 TorchServe:TorchServe 是 PyTorch 官方推出的模型服…

使用Spring Boot双数据源和PageHelper实现无缝分页查询

在开发中,有时我们需要使用多个数据源来访问不同的数据库。而在分页查询时,我们希望能够方便地使用PageHelper插件来处理结果集的分页逻辑。通过结合Spring Boot的双数据源功能和PageHelper的Spring Boot Starter,我们可以实现简单且高效的分…

第一篇【传奇开心果系列】Python深度学习库技术点案例示例:深度解读深度学习在自动驾驶领域的应用

传奇开心果博文系列 系列博文目录Python深度学习库技术点案例示例系列 博文目录前言一、深度学习在自动驾驶方面的应用介绍二、目标检测和识别示例代码三、路况感知示例代码四、行为预测示例代码五、路径规划示例代码六、自动驾驶控制示例代码七、感知融合示例代码八、高精度地…

【数据结构】串(String)

文章目录 基本概念顺序存储结构比较当前串与串s的大小取子串插入删除其他构造函数拷贝构造函数扩大数组空间。重载重载重载重载[]重载>>重载<< 链式存储结构链式存储结构链块存储结构 模式匹配朴素的模式匹配算法(BF算法)KMP算法字符串的前缀、后缀和部分匹配值nex…

Android 10.0 Launcher3替换桌面app图标后大小和其他app图标不一样的问题解决方案

1.前言 在10.0的系统ROM产品定制化开发中,在关于launcher3的产品定制化开发中,在有些时候需要对一些第三方的app图标做 替换或者是做一些动态图标的替换,发现在替换以后图标大小和其他app的图标大小不一样,所以就需要看是具体哪里 对app的图标做了缩放功能,接下来就需要去…

【网页在线小游戏源码】

网页在线小游戏源码 效果图部分源码领取源码下期更新预报 效果图 部分源码 index.html <!DOCTYPE html> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> <meta id"viewport" na…

WEB逆向—X-Bogus逆向分析(纯算+补环境)

声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 前言 此平台 本人 仅限…

分类预测 | Matlab实现CNN-BiLSTM-SAM-Attention卷积双向长短期记忆神经网络融合空间注意力机制的数据分类预测

分类预测 | Matlab实现CNN-BiLSTM-SAM-Attention卷积双向长短期记忆神经网络融合空间注意力机制的数据分类预测 目录 分类预测 | Matlab实现CNN-BiLSTM-SAM-Attention卷积双向长短期记忆神经网络融合空间注意力机制的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基…

Spring Boot 如何进行多环境配置

在SpringBoot中管理不同环境的配置确实是一个常见且重要的实践。通过使用不同的配置文件&#xff0c;你可以轻松地在开发、测试和生产环境之间切换&#xff0c;而无需手动更改配置信息。这不仅提高了开发效率&#xff0c;还减少了因配置错误导致的潜在问题。 要实现这一点&…

深入探究音视频开源库WebRTC中NetEQ音频抗网络延时与抗丢包的实现机制

目录 1、引言 2、WebRTC简介 3、什么是NetEQ&#xff1f; 4、NetEQ技术详解 4.1、NetEQ概述 4.2、抖动消除技术 4.3、丢包补偿技术 4.4、NetEQ概要设计 4.5、NetEQ的命令机制 4.6、NetEQ的播放机制 4.7、MCU的控制机制 4.8、DSP的算法处理 4.9、DSP算法的模拟测试…

分布式与一致性协议之CAP(二)

CAP CAP不可能三角 CAP不可能三角是指对于一个分布式系统而言&#xff0c;一致性、可用性、分区容错性指标不可兼得&#xff0c;只能从中选择两个&#xff0c; 如图所示。CAP不可能三角最初是埃里克布鲁尔(Eric Brewer)基于自己的工程实践提出的一个猜想&#xff0c;后被塞斯吉…

论文辅助笔记:LLM-MOB代码解读

论文笔记 Where Would I Go Next? Large Language Models as Human Mobility Predictor-CSDN博客 1 主函数 1.1 导入库 import os import pickle import time import ast import logging from datetime import datetime import pandas as pd from openai import OpenAIclie…

【003_音频开发_基础篇_Linux进程通信(20种你了解几种?)】

003_音频开发_基础篇_Linux进程通信&#xff08;20种你了解几种&#xff1f;) 文章目录 003_音频开发_基础篇_Linux进程通信&#xff08;20种你了解几种&#xff1f;)创作背景Linux 进程通信类型fork() 函数fork() 输出 2 次fork() 输出 8 次fork() 返回值fork() 创建子进程 方…

Diffusion Model原理剖析

目录 前言1. DDPM演算法初览2. 图像生成模型共同目标3. VAE: Lower bound of l o g P ( x ) logP(x) logP(x)4. Diffusion Model背后的数学原理5. 为什么需要Sample?6. Diffusion Model的应用7. Diffusion Model成功的关键总结参考 前言 接着上篇文章 图像生成模型浅析&#…

1-k8s集群安装报错CGROUPS_CPU: missing

加入集群报错 [rootiZuf65r8i4e90z40vlh8mgZ ~]# kubeadm join 172.19.35.202:6443 --token 9edy1q.209zfq0387qtiv5x --discovery-token-ca-cert-hash sha256:24e0953896046aa8ce573ec7faf6609b87250883a7691fcad70a0faa81978c3b --control-plane --cri-socket "unix://…

Three.js入门学习笔记

学习资料&#xff1a; 【Three.js】Three.js快速上手教程_three.module.js-CSDN博客 2024年了&#xff0c;是该学学Three.js了_three.js 2024-CSDN博客 一、three.js简介 three.js是JavaScript编写的WebGL第三方库。 three.js&#xff0c;webGL&#xff0c;openGL三者的关…