问题标签 [catboost]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4305 浏览

machine-learning - CatBoost 精度不平衡类

我使用 CatBoostClassifier 并且我的课程高度不平衡。我应用了一个 scale_pos_weight 参数来解决这个问题。在使用评估数据集(测试)进行训练时,CatBoost 在测试中显示出很高的精度。但是,当我使用 predict 方法对测试进行预测时,我只能得到低精度分数(使用 sklearn.metrics 计算)。

我认为这可能与我应用的班级权重有关。但是,我不太了解精度分数如何受此影响。

我希望在训练时获得与 CatBoost 显示相同的精度,但事实并非如此。我究竟做错了什么?

0 投票
4 回答
5349 浏览

python - 为什么 pip install 不适用于 catboost?

我必须安装 catboost 但无法通过pip install catboost.

Anaconda 中没有 catboost 库,所以以一种方式进行 pip。

错误信息是:

Python 版本是 3.6.3。

错误截图:

错误信息

我试过了 :

这些都不起作用。

为什么会出现这个问题,有没有另一种安装catboost的方法?

0 投票
1 回答
421 浏览

r - catboost R 分类转换为数字

如果我有一个数据框,比如说,第 1 列和第 2 列中的因子以及第 3 列中的标签,那么以下之间是否有任何区别:

也就是说,即使我没有在catboost.load_pool?

b) R 包中是否有将分类值转换为数字的矩阵?

0 投票
0 回答
1884 浏览

python - 为 CatBoostRegressor 实现自定义目标函数

我正在将 CatBoostRegressor 用于监督学习问题,并且我想使用自定义目标函数,但我不知道如何以与 CatBoost 完全兼容并针对计算效率进行优化的方式来实现它。

我面临着选择 RMSE(均方根误差)和 MAE(平均绝对误差)之间的权衡,因此我定义了一个自定义目标函数,试图两全其美。

RMSE 倾向于产生“无偏”估计量,因为在一组数字上最小化 RMSE 会导致找到它的均值。另一方面,与大量小错误相比,它倾向于更严重地惩罚少量大错误。这是一个包含两个数据点的示例:如果误差为 [5, 5],则 RMSE 为 7.07,而如果误差为 [0, 10],则 RMSE 为 10。

MAE 的优点是对少量大错误和大量小错误进行同等惩罚(在上面的示例中,[5, 5] 和 [0, 10] 的 MAE=5)。另一方面,它往往会产生有偏差的估计量,因为在一组数字上最小化 MAE 会导致找到它的中值,如果存在异常值,它可能与均值显着不同。

我想定义一个两全其美的成本函数:

1)我的成本函数应该平等地惩罚少量大错误和大量小错误,就像 MAE

2)我的成本函数应该倾向于产生无偏估计:在一组数字上最小化我的成本函数应该导致找到它的平均值,就像 RMSE

这个想法是采用 MAE 并惩罚偏见。这是成本函数的 Python 代码:

RMSE 和 MAE 已经在 CatBoost 中实现(https://tech.yandex.com/catboost/doc/dg/concepts/loss-functions-regression-docpage/)。我在这里找到了一个关于实现自定义损失函数的教程https://github.com/catboost/tutorials/blob/master/custom_loss/custom_metric_tutorial.md,但我无法根据我的公式修改成本函数,因为它需要用 C++ 编写(https://github.com/catboost/catboost/issues/521)。我将衷心感谢您的帮助。

0 投票
2 回答
793 浏览

machine-learning - 在 CatBoost 中测量 AUPRC

我想在 catboost 中测量精确召回曲线 (AUPRC) 曲线下的面积,但CatBoostClassifier, 没有AUPRC作为评估指标。任何有助于我测量此性能指标的建议将不胜感激。

这是我使用的代码:

0 投票
0 回答
34 浏览

catboost - CatBoost 训练期间的信息消息

我是 CatBoost 的新手,我正在使用logging_level = "Info". 我的数据由分类变量和数值变量组成。

首先,对于其中一个分类变量,我在打印的信息中收到以下消息:feature 21 is redundant categorical feature, skipping it. 这个特征的冗余度是如何确定的?

此外,对于迭代的所有信息代表什么,我有点迷茫。这是我的一次训练迭代的信息输出:

在这种情况下,Feature1 和 Feature3 是分类的,而 Feature2 和 Feature4 是数值的。

pr0, tb1,type0等所有值score代表什么?任何指向文档的指针将不胜感激。

0 投票
1 回答
542 浏览

python - CatBoost 边框

由于边框小,我无法使用 catboost 开始 catboost 学习。

所以我得到了

数据https://drive.google.com/drive/folders/1m7bNIs0mZQQkAsvkETB3n6j62p9QJX39?usp=sharing

0 投票
2 回答
401 浏览

catboost - 为什么在 CPU 上学习比在 GPU 上学习慢

我有:GPU:GeForce RTX 2070 8GB。CPU:AMD Ryzen 7 1700 八核处理器。内存:32GB。驱动程序版本:418.43。CUDA 版本:10.1。在我的项目中,gpu 也比 cpu 慢。但现在我将使用文档示例。

gpu上的训练时间:4.838074445724487

cpu上的训练时间:0.43390488624572754

为什么gpu上的训练时间比cpu上的多?

0 投票
1 回答
1600 浏览

python-3.x - 未知类名的 CatBoostError

当我运行下面的代码时,会出现以下错误:

我的代码:

Catboost 版本:0.13
Python 版本:3.7

0 投票
1 回答
52 浏览

catboost - CV 如何确定使用哪个函数?

我对 CV 课程感到困惑。我认为它接受像 scikit-learn 中的回归器或分类器模型。但是,我在 CV 的输入中没有找到任何这样的模型。你能告诉我 CV 类是如何决定适合哪个模型的吗?