catboost - 了解 CatBoost 有序提升
问题描述
在视频中 Anna Veronika Dorogush - CatBoost - 新一代梯度提升
她在 15:30 分钟谈论“对象”。她到底是什么意思?特征?列?行?
经典提升和有序提升之间究竟有什么区别?经典只是将所有决策树加起来吗?有序的是否仅使用之前随机分布的决策树并将它们相加?所以区别只是随机分布?
我希望有人可以帮助我,因为我很难理解这一点。
解决方案
据我了解,她在视频中提到的“对象”是数据集的数据点/实例。catboost 论文中提到的经典提升的问题是预测偏移。也就是说,模型在训练集中学到的东西并没有反映在测试集中。他们说问题的根源在于训练阶段的每棵树都是在同一组数据点上训练的,因此没有机会遇到看不见的数据。
对于有序提升,一棵树在数据集的一个子集上进行训练,并用于计算它未见过的另一个子集的残差。Catboost 通过创建人工时间(即数据的随机排列)来实现这一点。
假设您有从 0 到 9 的十个数据点。Catboost 将创建一个包含 5,0,2,1,3,6,4,9,7,8 的排列(这只是我想出的任意排列) , 并在 5,0,2,1,3 上训练模型,然后用于计算 6,4,9,7,8 的残差。
这只是我自己的理解,绝不是说100%正确。任何意见和更正都非常欢迎和赞赏。
推荐阅读
- confluence - 如何在 Confluence 中编写文件夹树?
- json - 挣扎于简单的 API 调用和打印 JSON 数据
- pandas - 旧代码不适用于新的大型 csv 文件
- css - 强制 Google Web 字体使用“ct”连字
- python - 如果用户是群组成员,如何显示所有群组内容
- python - 昨天之后使用读取不和谐消息历史记录的正确方法是什么?
- java - 在 Eclipse 中使用上传函数到 AWS Lambda 创建 JAR 失败
- mysql - 带内连接 3 表的多值选择
- c# - 如何在应用程序启动时创建页面的静态实例?
- c# - 安装 Windows 服务然后尝试运行时,我收到错误 1053。说我的服务启动时间过长