xgboost - xgboost/lightgbm/catboost 背后的想法比较
问题描述
我正在尝试决定,我将在实践中将以下哪一项用于回归任务:xgboost、lightgbm 或 catboost(python 3)。
那么,它们背后的总体思路是什么?为什么我应该选择一个,而不是另一个?
我对 0.781 与 0.782 之类的准确度分数的微小差异不感兴趣。结果应该是站得住脚的,我的工具应该是健壮的,使用方便。主力军。
解决方案
您无法先验地确定哪种树算法(或任何算法)将自动成为最佳算法。这是因为https://en.wikipedia.org/wiki/No_free_lunch_theorem
最好都尝试一下。您还应该将随机森林 (RF) 作为另一个尝试。
我会说http://CatBoost.ai (CB) 确实比其他人有一个优势:如果你有Categorical Variables,CB 很可能会击败其他人,因为它可以直接处理分类变量而无需 One-Hot-Encoding。
您可以尝试http://H2O.ai的网格搜索,它支持多种算法(RF、XGBoost、GBM、线性回归),并通过参数超调来查看哪一种效果最好。您可以在一夜之间运行它。(CB 不包含在 H2O 的网格搜索中)
推荐阅读
- react-native - undefined 不是对象(评估“response.data”)
- php - 不能在 Eloquent Query Builder 宏中使用“with”
- xslt - 如何展平文本节点和嵌套节点?
- python - 内存错误:在 python 中从 BLOB 读取大的 .txt 文件时
- batch-file - 将文件移动到单个文件夹 - 带有空格的文件名?
- angularjs - 为什么我使用 $sce.trustAsHtml("");
- git - git log --full-diff,它有什么作用?
- abap - S/4 Hana 中的最佳实践阅读表
- c# - 如何更新 ObservableCollection 中的对象?
- python - 无法使用 kafka-python 从另一个容器向 Kafka 容器发出请求