XGBoost:修订间差异

来自决策链云智库
无编辑摘要
 
(未显示同一用户的14个中间版本)
第29行: 第29行:


==算法概述==
==算法概述==
CatBoost是Yandex开发的开源软件库。它提供了一个梯度增强框架,其中尝试使用与经典算法相比的排列驱动替代方案来解决分类特征<ref>Zhang, Yixiao; Zhao, Zhongguo; Zheng, Jianghua (2020). "CatBoost: A new approach for estimating daily reference crop evapotranspiration in arid and semi-arid regions of Northern China." ''Journal of Hydrology'' 588: 125087. Elsevier.</ref>。它适用于Linux、Windows、macOS,并且可用于 Python、R,并且使用 catboost 构建的模型可用于C++、Java、C#、Rust、Core ML中的预测、ONNX和PMML。源代码已根据Apache 许可证获得许可,并可在 GitHub 上获取。
Boosting是一种高效且广泛使用的机器学习方法。在该节点中,我们描述了一种称为XGBoost(eXtreme Gradient Boosting)<ref>{{cite conference
| title = Xgboost: A scalable tree boosting system
| author1 = Tianqi Chen
| author2 = Carlos Guestrin
| publisher = Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining
| pages = 785–794
| year = 2016
}}</ref>的可扩展端到端树提升系统,该系统被数据科学家广泛使用,以在许多机器学习挑战中取得最先进的结果。XGBoost提出了一种新的稀疏数据稀疏性感知算法和近似树学习的加权分位数图。通过结合这些技术,XGBoost能够使用比现有系统少得多的资源得到更精确的结果。


==示例代码-CatBoost分类节点==
==示例代码-XGBoost分类节点==
该节点使用Python编写,调用catboost包<ref>Hancock, John T.; Khoshgoftaar, Taghi M. (2020). "CatBoost for big data: an interdisciplinary review." ''Journal of big data'' 7(1): 1-45.</ref>。以下为示例代码:
该节点使用Python编写,调用xgboost包<ref>{{cite web
| title = xgboost pakage
| url = https://github.com/dmlc/xgboost
| access-date = 2024-01-22
}}</ref>。以下为示例代码:
<syntaxhighlight lang="Python">
<syntaxhighlight lang="Python">
from catboost import CatBoostClassifier
import xgboost as xgb
model = CatBoostClassifier(
# Load Pandas Data
    iterations=15,
data = np.random.rand(5, 10)  # 5 entities, each contains 10 features
    verbose=3
label = np.random.randint(2, size=5) # binary target
)
dtrain = xgb.DMatrix(data, label=label)
model.fit(
 
    X_train, y_train,
num_round = 10
    cat_features=cat_features,
bst = xgb.train(param, dtrain, num_round, evallist)
    eval_set=(X_validation, y_validation),
 
)
</syntaxhighlight>
</syntaxhighlight>
如果想使用完全代码请参考:https://github.com/catboost/tutorials/
如果想使用完全代码请参考:https://xgboost.readthedocs.io/en/stable/python


拟合后,模型可以用于预测样本的类别,可以在[[通用预测模块]]实现内外部测试集的预测。
拟合后,模型可以用于预测样本的类别,可以在[[通用预测模块]]实现内外部测试集的预测。


=='''节点使用指南'''==
=='''节点使用指南'''==
* 最适用的场景:决策树可用于解决分类问题,其中目标是将数据分为不同的类别或预测数据的类别。
* 最适用的场景:可用于解决分类问题,其中目标是将数据分为不同的类别或预测数据的类别。
* 处理的数据类型:结局变量为二分类,特征变量大多数为连续型的变量。
* 处理的数据类型:结局变量为二分类,特征变量大多数为连续型的变量。
===变量配置===
===变量配置===
第58行: 第68行:
===参数配置===
===参数配置===
* 设置随机数:控制模型的随机性。
* 设置随机数:控制模型的随机性。
* 评估算法:训练中使用的指标。指定的值还决定了要解决的机器学习问题。可选Logloss, 交叉熵, Precision, Recall, F1, MCC。
* 弱学习器类型:
* 树深:树的最大深度。
** gblinear。
* 迭代次数:使用CatBoost解决机器学习问题时可以构建的最大迭代次数。
** gbtree(默认):梯度提升决策树(Gradient Boosting Decision Tree)。这是传统的梯度提升框架,使用了Leaf-wise决策树。
* 学习率:默认0.1。
** dart:DART(Dropouts meet Multiple Additive Regression Trees)。DART是LightGBM的一种改进算法,它在训练过程中引入了随机性,通过丢弃(dropout)弱学习器来减少过拟合的风险。


===注意事项===
===注意事项===

2024年1月22日 (一) 11:57的最新版本

Boosting XGBoost.png
节点状态
Windows / Windows 10 Win10及以上可用
V1.0部署
XGBoostBoosting XGBoost.svg
节点开发者决策链算法研发部 (Dev.Team-DPS)
节点英文名Boosting_XGBoost
功能主类别机器学习
英文缩写XGBoost
功能亚类别分类训练器
节点类型数据挖掘
开发语言Python
节点简介

XGBoost(eXtreme Gradient Boosting)是一种梯度提升树算法的变体,它在梯度提升树的基础上进行了改进和优化。

XGBoost在各种机器学习竞赛和实际应用中表现优秀,被广泛应用于分类、回归和排名等问题。

端口数量与逻辑控制(PC)
Input-入口2个
Output-出口3个
Loop-支持循环
If/Switch-支持逻辑判断
输入输出
可生成图片类型(推荐)
可生成数据表类型(推荐)
相关节点
上一节点AdaBoost
下一节点CatBoost



算法概述

Boosting是一种高效且广泛使用的机器学习方法。在该节点中,我们描述了一种称为XGBoost(eXtreme Gradient Boosting)[1]的可扩展端到端树提升系统,该系统被数据科学家广泛使用,以在许多机器学习挑战中取得最先进的结果。XGBoost提出了一种新的稀疏数据稀疏性感知算法和近似树学习的加权分位数图。通过结合这些技术,XGBoost能够使用比现有系统少得多的资源得到更精确的结果。

示例代码-XGBoost分类节点

该节点使用Python编写,调用xgboost包[2]。以下为示例代码:

import xgboost as xgb
# Load Pandas Data
data = np.random.rand(5, 10)  # 5 entities, each contains 10 features
label = np.random.randint(2, size=5)  # binary target
dtrain = xgb.DMatrix(data, label=label)

num_round = 10
bst = xgb.train(param, dtrain, num_round, evallist)

如果想使用完全代码请参考:https://xgboost.readthedocs.io/en/stable/python

拟合后,模型可以用于预测样本的类别,可以在通用预测模块实现内外部测试集的预测。

节点使用指南

  • 最适用的场景:可用于解决分类问题,其中目标是将数据分为不同的类别或预测数据的类别。
  • 处理的数据类型:结局变量为二分类,特征变量大多数为连续型的变量。

变量配置

  • 选择特征变量:作为特征进行学习的变量(X),多选。
  • 选择目标变量:作为结局的二分类变量(y),单选。

参数配置

  • 设置随机数:控制模型的随机性。
  • 弱学习器类型:
    • gblinear。
    • gbtree(默认):梯度提升决策树(Gradient Boosting Decision Tree)。这是传统的梯度提升框架,使用了Leaf-wise决策树。
    • dart:DART(Dropouts meet Multiple Additive Regression Trees)。DART是LightGBM的一种改进算法,它在训练过程中引入了随机性,通过丢弃(dropout)弱学习器来减少过拟合的风险。

注意事项

  • 不支持带空值运算,用多重插补插补空值进行插补,
  • 节点不出图,
  • 导入该节点的数据端口为训练数据集,导入前注意转换。

参考文献

  1. Tianqi Chen; Carlos Guestrin (2016). Xgboost: A scalable tree boosting system. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. pp. 785–794.
  2. "xgboost pakage". Retrieved 2024-01-22.

查找其他类别的节点,请参考以下列表