可生成图片类型(推荐)
可生成数据表类型(推荐)
无编辑摘要 |
Zeroclanzhang(讨论 | 贡献) 无编辑摘要 |
||
(未显示2个用户的5个中间版本) | |||
第5行: | 第5行: | ||
|simpleicon=Boosting_GBDT_Pure.svg | |simpleicon=Boosting_GBDT_Pure.svg | ||
|developer=Dev.Team-DPS | |developer=Dev.Team-DPS | ||
|productionstate= | |productionstate={{图标文件|Win}} / {{图标文件|W10}} Win10及以上可用 | ||
|productionstatedesc=在[[DecisionLinnc | V1.0]]部署 | |productionstatedesc=在[[Update:DecisionLinnc 1.0.0.8|V1.0]]部署 | ||
|nodeenglishname= | |nodeenglishname=Boosting_GBDT | ||
|abbreviation= | |abbreviation=GBDT | ||
|funcmaincategory=机器学习 | |funcmaincategory=机器学习 | ||
|funcsubcategory=[[DataML Lv1 Cat::分类训练器]] | |funcsubcategory=[[DataML Lv1 Cat::分类训练器]] | ||
第20行: | 第20行: | ||
|nodeavailableplotlist=nodenoplotoutput | |nodeavailableplotlist=nodenoplotoutput | ||
|nodeavailabletablelist=Table_For_Downstream | |nodeavailabletablelist=Table_For_Downstream | ||
|nodeconfiguration=VariableList; | |nodeconfiguration=VariableList;DropMenu;Text | ||
|nodeinputports=WorkFlow-Control ➤;Transfer-Table ■ | |nodeinputports=WorkFlow-Control ➤;Transfer-Table ■ | ||
|nodeoutputports=WorkFlow-Control ➤;Transfer-Model ▶;Transfer-Table ■ | |nodeoutputports=WorkFlow-Control ➤;Transfer-Model ▶;Transfer-Table ■ | ||
第27行: | 第27行: | ||
|nextnode=[[AdaBoost]] | |nextnode=[[AdaBoost]] | ||
}} | }} | ||
==算法概述== | ==算法概述== | ||
Gradient Boosting是一种基于函数空间(functional space)中增强的机器学习方法,其中目标函数是伪残差(pseudo- | Gradient Boosting是一种基于函数空间(functional space)中增强的机器学习方法,其中目标函数是伪残差(pseudo-residuals),而不是传统增强中使用的典型残差。它给出了弱学习模型进行集成后的预测模型,即对数据进行很少的假设的模型,这些模型通常是简单的决策树<ref>{{cite journal |title=Data analytics in asset management: Cost-effective prediction of the pavement condition index |author=Piryonesi, S. Madeh and El-Diraby, Tamer E. |journal=Journal of Infrastructure Systems |volume=26 |issue=1 |pages=04019036 |year=2020 |publisher=American Society of Civil Engineers}}</ref><ref>{{cite book |title=The elements of statistical learning: data mining, inference, and prediction |author=Hastie, Trevor and Tibshirani, Robert and Friedman, Jerome |pages=337–387 |year=2009 |publisher=Springer}}</ref>。当决策树是弱学习器时,所得到的算法被称为梯度增强树;它通常优于随机森林<ref>{{cite web | ||
|title=Gradient Boosting | |||
|url=https://en.wikipedia.org/wiki/Gradient_boosting | |||
|website=Wikipedia | |||
|access-date=2024-01-18 | |||
}}</ref>。与其他Boosting方法一样,梯度提升树模型是以分阶段的方式构建的,但它通过允许优化任意可微损失函数来推广其他方法。 | |||
==示例代码- | ==示例代码-梯度提升树分类节点== | ||
该节点使用Python编写,调用scikit-learn包<ref>{{cite journal |author=Kramer, Oliver |title=Scikit-learn |journal=Machine learning for evolution strategies |pages=45--53 |year=2016 |publisher=Springer }}</ref>。以下为示例代码: | 该节点使用Python编写,调用scikit-learn包<ref>{{cite journal |author=Kramer, Oliver |title=Scikit-learn |journal=Machine learning for evolution strategies |pages=45--53 |year=2016 |publisher=Springer }}</ref>。以下为示例代码: | ||
<syntaxhighlight lang="Python"> | <syntaxhighlight lang="Python"> | ||
第56行: | 第60行: | ||
===参数配置=== | ===参数配置=== | ||
* 设置随机数:控制模型的随机性。 | * 设置随机数:控制模型的随机性。 | ||
* | * 拆分质量评估方法选择: | ||
** | ** 'friedman mse', | ||
** | ** 'squared error'。 | ||
* | * 学习率:算法通过学习率缩小每棵树的贡献差距。默认值为0.1。 | ||
* | * Boosting次数:执行boosting算法的次数。梯度增强对于过度拟合是相当稳健的,因此大量通常会带来更好的性能。 | ||
** | * 子样本分数:用于拟合各个基础学习器的样本比例。如果小于 1.0,则会导致随机梯度提升。选择会导致方差减少和偏差增加。值必须在范围内。子样本分数取值范围(0.0, 1.0]。 | ||
** | * 损失函数算法选择:衡量分割质量的函数。支持的算法为 | ||
* | ** 'exponential', | ||
** 'log_loss'。 | |||
* 最大深度:树的最大深度。如果没有,则扩展节点,直到所有叶子都是纯的或直到所有叶子包含少于"最小拆分样本数"的样本。 | |||
* 最小拆分样本数:分裂内部节点所需的最小样本数。 | |||
* 叶节点最小样本数:叶节点所需的最小样本数。该参数仅当任何深度的分割点在左右分支中至少留下训练样本时,才会被考虑。这可能具有使模型平滑的效果,尤其是在回归中。 | |||
* 最大特征数:寻找最佳分割时要考虑的特征数量。 | |||
* 最大叶节点数:以最佳优先的方式种植一棵树。最佳节点定义为杂质的相对减少。如果没有,则叶节点数量不受限制。 | |||
* 最小不纯度衰减阈值:如果分裂导致杂质减少大于或等于该值,则节点将被分裂。 | |||
===注意事项=== | ===注意事项=== | ||
第72行: | 第83行: | ||
== 参考文献 == | == 参考文献 == | ||
{{reflist}} | {{reflist}} | ||
{{Navplate AlgorithmNodeList}} | {{Navplate AlgorithmNodeList}} | ||
[[Category:分类训练器]] | [[Category:分类训练器]] |
节点状态 | / Win10及以上可用
在V1.0部署
|
---|---|
梯度提升树 | |
节点开发者 | 决策链算法研发部 (Dev.Team-DPS) |
节点英文名 | Boosting_GBDT |
功能主类别 | 机器学习 |
英文缩写 | GBDT |
功能亚类别 | 分类训练器 |
节点类型 | 数据挖掘 |
开发语言 | Python |
节点简介 | |
梯度提升树(Gradient Boosting Tree)是一种集成学习算法,通过迭代地训练弱学习器(通常是决策树),并将它们组合成一个强大的预测模型。与其他集成学习方法(如随机森林)不同,梯度提升树是通过优化损失函数的梯度来逐步改进模型的。 | |
端口数量与逻辑控制(PC) | |
Input-入口 | 2个 |
Output-出口 | 3个 |
Loop-支持循环 | 否 |
If/Switch-支持逻辑判断 | 否 |
输入输出 | |
相关节点 | |
上一节点 | 支持向量机 |
下一节点 | AdaBoost |
相关网站 |
Gradient Boosting是一种基于函数空间(functional space)中增强的机器学习方法,其中目标函数是伪残差(pseudo-residuals),而不是传统增强中使用的典型残差。它给出了弱学习模型进行集成后的预测模型,即对数据进行很少的假设的模型,这些模型通常是简单的决策树[1][2]。当决策树是弱学习器时,所得到的算法被称为梯度增强树;它通常优于随机森林[3]。与其他Boosting方法一样,梯度提升树模型是以分阶段的方式构建的,但它通过允许优化任意可微损失函数来推广其他方法。
该节点使用Python编写,调用scikit-learn包[4]。以下为示例代码:
from sklearn.datasets import make_hastie_10_2
from sklearn.ensemble import GradientBoostingClassifier
X, y = make_hastie_10_2(random_state=0)
X_train, X_test = X[:2000], X[2000:]
y_train, y_test = y[:2000], y[2000:]
clf = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0,
max_depth=1, random_state=0).fit(X_train, y_train)
clf.score(X_test, y_test)
拟合后,模型可以用于预测样本的类别,可以在通用预测模块实现内外部测试集的预测。
{{cite journal}}
: CS1 maint: multiple names: authors list (link)
{{cite book}}
: CS1 maint: multiple names: authors list (link)
查找其他类别的节点,请参考以下列表