decision-tree - catboost eval_metrics 返回值
问题描述
我正在使用CatBoostClassifier
'seval_metrics
来计算我的测试集上的一些指标,但我对它的输出感到困惑。对于给定的指标,默认情况下,它似乎返回一个数组,其大小等于迭代次数。
这似乎与predict
仅返回单个值的函数不一致。返回的数组中哪个数字eval_metrics
与predict
函数一致?
我检查了https://catboost.ai/docs/concepts/python-reference_catboostclassifier_eval-metrics.html#python-reference_catboostclassifier_eval-metrics__output-format上的文档,但我仍然不清楚。
解决方案
Catboost 分类器是一种使用 Boosting 方法的集成分类器。简单地说,Boosting 算法迭代训练较弱的算法(在这种情况下为决策树)来进行预测。创建的每棵树都从先前较弱的树所犯的集体错误中学习,并试图从这些错误中学习。Catboost 基于 Gradient Boosting,我不会深入探讨。这里相关的是,在该过程中生成了许多较弱的树,当您调用该eval_metrics()
方法时,您将获得每个生成树的评估指标。您指定在提供 、 或创建模型时生成的树数iterations
(如果num_boost_round
未指定,则默认值为 1000)。n_estimators
num_trees
您为该方法指定的其他参数eval_metrics()
将定义间隔ntree_start
为. 如果未提供这些,您将获得所有生成的较弱树的数据的指定指标,这就是您获得值列表的原因。ntree_end
eval_period
推荐阅读
- java - 的用法?在 jsonb 上的本机 SQL 查询中
- offline - 无法切换到 urql offlineExchange;运行时错误:TypeError:无法读取未定义的属性“长度”
- file - 逻辑记录大小是否以匹配现有物理记录大小的方式确定?为什么/为什么不?
- html - Bootstrap vue卡底部按钮对齐
- typescript - 用于 Typescript 的 Sonarqube 上未显示代码覆盖率
- actor - 将传感器倒置
- input - MPI 读取简单的数据框或 txt 文件
- html - 我应该如何保存到数据库?
- docker - Docker-Compose:如何将 Docker 机器 IP 地址传递给服务
- javascript - 如何获取和显示 blob 图像