|
|
第1行: |
第1行: |
| {{Infobox nodebasic
| | #Redirect [[CatBoost]] |
| |nodename=CatBoost
| |
| |nodeimage=Boosting_CatBoost.png
| |
| |icon=Boosting_CatBoost.svg
| |
| |simpleicon=Boosting_CatBoost_Pure.svg
| |
| |developer=Dev.Team-DPS
| |
| |productionstate={{图标文件|Win}} / {{图标文件|W10}} Win10及以上可用
| |
| |productionstatedesc=在[[Update:DecisionLinnc 1.0.0.8|V1.0]]部署
| |
| |nodeenglishname=[[Has english name::Boosting_CatBoost]]
| |
| |abbreviation=[[Has abbreviation::CatBoost]]
| |
| |funcmaincategory=机器学习
| |
| |funcsubcategory=[[DataML Lv1 Cat::分类训练器]]
| |
| |nodecategory=数据挖掘
| |
| |nodeinterpretor=Python
| |
| |nodeshortdescription=<p>CatBoost是一种基于梯度提升树的机器学习算法,由Yandex开发。它专门用于处理分类问题,并具有许多独特的特性和优势。</p><p>CatBoost旨在提供高性能、可扩展且易于使用的机器学习解决方案。</p>
| |
| |nodeinputnumber=2
| |
| |nodeoutputnumber=3
| |
| |nodeloopsupport=否
| |
| |nodeifswitchsupport=否
| |
| |nodeavailableplotlist=nodenoplotoutput
| |
| |nodeavailabletablelist=Table_For_Downstream
| |
| |nodeconfiguration=VariableList;DropMenu;Text
| |
| |nodeinputports=WorkFlow-Control ➤;Transfer-Table ■
| |
| |nodeoutputports=WorkFlow-Control ➤;Transfer-Model ▶;Transfer-Table ■
| |
| |statsapewikiurl=https://wiki.statsape.com/CatBoost
| |
| |previousnode=[[XGBoost]]
| |
| |nextnode=[[Logistic分类器]]
| |
| }}
| |
| | |
| ==算法概述==
| |
| 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 上获取。
| |
| | |
| ==示例代码-CatBoost分类节点==
| |
| 该节点使用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>。以下为示例代码:
| |
| <syntaxhighlight lang="Python">
| |
| from catboost import CatBoostClassifier
| |
| model = CatBoostClassifier(
| |
| iterations=15,
| |
| verbose=3
| |
| )
| |
| model.fit(
| |
| X_train, y_train,
| |
| cat_features=cat_features,
| |
| eval_set=(X_validation, y_validation),
| |
| )
| |
| </syntaxhighlight>
| |
| 如果想使用完全代码请参考:https://github.com/catboost/tutorials/
| |
| | |
| 拟合后,模型可以用于预测样本的类别,可以在[[通用预测模块]]实现内外部测试集的预测。
| |
| | |
| =='''节点使用指南'''==
| |
| * 最适用的场景:决策树可用于解决分类问题,其中目标是将数据分为不同的类别或预测数据的类别。
| |
| * 处理的数据类型:结局变量为二分类,特征变量大多数为连续型的变量。
| |
| ===变量配置===
| |
| * 选择特征变量:作为特征进行学习的变量(X),多选。
| |
| * 选择目标变量:作为结局的二分类变量(y),单选。
| |
| | |
| ===参数配置===
| |
| * 设置随机数:控制模型的随机性。
| |
| * 基础估计器选择:构建增强整体的基本估计器。默认基本估计器用决策树分类估计器,初始化最大深度为1。
| |
| ** 决策树,
| |
| ** 支持向量机。
| |
| * 估计器数量:默认为100。
| |
| * Boosting算法选择:SAMME.R 算法通常比 SAMME 收敛得更快,从而通过更少的提升迭代实现更低的测试误差。
| |
| ** SAMME:离散增强算法。
| |
| ** SAMME.R:真实增强算法。
| |
| * 学习率:在每次迭代时应用于每个分类器的权重。较高的学习率会增加每个分类器的贡献。
| |
| | |
| ===注意事项===
| |
| * 不支持带空值运算,用[[多重插补]]或[[插补空值]]进行插补,
| |
| * 节点不出图,
| |
| * 导入该节点的数据端口为训练数据集,导入前注意转换。
| |
| | |
| == 参考文献 ==
| |
| {{reflist}}
| |
| | |
| {{Navplate AlgorithmNodeList}}
| |
| | |
| [[Category:分类训练器]]
| |