公众号:尤而小屋 作者:Peter 编辑:Peter
XGBoost是Extreme Gradient Boosting的缩写,是一个非常流行的开源机器学习库,以其高性能和出色的准确性而闻名。它已广泛应用于各个领域,包括数据科学、金融和在线广告。
最近,XGBoost 发布了备受期待的新版本 XGBoost 2.0,它引入了一系列令人兴奋的功能和增强功能。在这篇博文中,我们将探讨这些新功能,并提供代码示例来展示它们的功能。
原文链接:https://medium.com/@thedatabeast/xgboost-2-0-unleashing-new-features-and-code-examples-ae161bcd74e1
XGBoost 2.0 最重要的进步之一是引入了 GPU 支持。此功能允许用户利用 GPU 的计算能力来加速训练和推理过程。
与 CPU 实现相比,通过利用 GPU,XGBoost 可以处理更大的数据集并实现更快的处理时间。在 XGBoost 中启用 GPU 支持就像指定tree_method
参数一样简单'gpu_hist'
:
import xgboost as xgb
# 启用 GPU 训练
params = { 'tree_method' : 'gpu_hist' }
model = xgb.train(params, dtrain)
XGBoost 2.0引入了近似树构建算法,在不牺牲模型精度的情况下显着提高了训练速度。近似算法利用一种称为“块坐标下降”的技术来有效地估计树节点的最佳分割。
这种优化使得 XGBoost 能够更高效地处理大型数据集,使其成为处理大数据问题的理想选择。启用近似算法就像将tree_method
参数设置为一样简单'approx'
:
import xgboost as xgb
# 启用近似算法
params = { 'tree_method' : 'approx' }
model = xgb.train( params , dtrain)
XGBoost 2.0 采用优化来增强稀疏数据的处理,从而缩短训练和推理时间。这种改进对于涉及文本数据、网络分析和推荐系统的任务特别有益,这些任务中稀疏矩阵很常见。下面是如何在 XGBoost 中处理稀疏数据的示例:
import xgboost as xgb
from scipy.sparse import csr_matrix
# 将数据转换为稀疏矩阵
稀疏数据 = csr_matrix(data)
# 用稀疏数据训练 XGBoost 模型
dtrain = xgb.DMatrix(sparse_data, label=labels)
model = xgb.train(params,火车)
正则化对于防止过度拟合和提高模型泛化至关重要。XGBoost 2.0 引入了新的正则化技术,包括鼓励模型使用更少特征的“稀疏感知”正则化。
该技术降低了模型复杂性并增强了可解释性,特别是在特征选择至关重要的场景中。以下是在 XGBoost 中应用 L1 正则化的示例:
import xgboost as xgb
# 启用 L1 正则化
params = { 'alpha' : 1 }
model = xgb.train( params , dtrain)
XGBoost 2.0 为捕获复杂的特征交互提供了增强的支持。新版本引入了“交互约束”,允许用户定义功能之间交互的约束。此功能对于已知特定功能组合很重要或具有特定关系的任务非常有价值。以下是在 XGBoost 中定义交互约束的示例:
import xgboost as xgb
# 定义交互约束
interaction_constraints = [[ 0 , 1 ], [ 2 , 3 ]]
# 启用交互约束
params = { 'interaction_constraints' : interaction_constraints}
model = xgb.train(params, dtrain)
除了上述功能之外,XGBoost 2.0还引入了其他几个强大的功能。虽然我们不会详细介绍每个功能,但以下是功能列表及其主要亮点:
更多案例参考官方 XGBoost 文档:https://xgboost.readthedocs.io/en/stable/
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。