问题标签 [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 投票
1 回答
1740 浏览

catboost - 如何在 CatBoostClassifier.fit() 之后获取评估指标?

我已经训练了一个分类模型调用CatBoostClassifier.fit(),还提供了一个eval_set.

现在,我怎样才能获取评估指标的最佳值,以及在训练期间实现的迭代次数plot=True我可以通过设置调用来绘制信息fit(),但是如何将其分配给变量?

我可以在训练模型调用时做到这一点cv(),因为它会cv()返回所需的信息。但CatBoostClassifier.fit()根据文档不返回任何内容。

这是我用来拟合模型的代码片段:

如果我改用以下方法,我将如何设法获取所需的信息cv()

0 投票
0 回答
64 浏览

python-3.x - LightGMB 中是否有对象重要性?

我知道在 Python API的CatBoost中,可以使用get_object_importance方法计算对象重要性(不要将其与特征重要性混淆)。

我想知道LightGMB中是否有类似的选项?

0 投票
1 回答
898 浏览

machine-learning - 当要预测的值是分类值时不起作用

问题:当要预测的值是分类 catboost 版本时不起作用:0.8 操作系统:Windows CPU:intel

当我的值( Y )也被预测为分类时,出现“不能转换为浮动”的错误。我必须对 Y 值进行一次热编码吗?

感谢帮助。

Python代码:

那么错误是:

ValueError:无法将字符串转换为浮点数:“一些缺陷”

0 投票
1 回答
1364 浏览

python - LightGBM 和 Catboost 都已安装,但在 Jupyter 中导入时会出现 ModuleNotFoundError

我已经使用命令提示符成功安装了 CatBoost 和 LightGbM 模块。它给了我消息 Successly installed catboost-0.2.5(我之前也尝试过另一个)。但是,当我尝试将它们都导入到 jupyter 笔记本中时,我遇到了相同的错误:

我得到:

我也遇到了与 CatBoost 相同的错误。

有任何想法吗?谢谢!

0 投票
2 回答
11956 浏览

python - 如何抑制 CatBoost 迭代结果?

我正在尝试使用 CatBoost 来拟合二元模型。当我使用以下代码时,我认为verbose=False可以帮助抑制迭代日志。但它没有。有没有办法避免打印迭代?

在此处输入图像描述

0 投票
1 回答
788 浏览

loss-function - catboost 中的 Mlogloss 值开始为负并增加

我正在使用设置运行 catboost 分类器:

我有 5 个类,它从 -ve 值开始,在拟合模型时增加如下:

这是正常行为吗?而在大多数机器学习算法中,logloss 是正的并且随着训练而减小。我在这里想念什么?

0 投票
0 回答
406 浏览

python - catboost 超参数调整时的joblibsystemerror

我正在尝试使用来自sklearn的 GridsearchCV 找到Catboost 分类器的最佳值。

它抛出一个错误JoblibSystemError。我以图像的形式附加错误:照片

任何人都可以帮我解决这个问题吗?而且我还附上了完整的错误错误错误 错误 错误

0 投票
2 回答
7032 浏览

python - 如何在 Python 中正确加载 CatBoost 中的预训练模型

我受过训练CatBoostClassifier来解决我的分类任务。现在我需要保存模型并在另一个应用程序中使用它进行预测。为此,我通过方法保存模型并通过save_model方法恢复它load_model

但是,每次调用predict恢复的模型时,都会出现错误:

所以看起来我需要再次训练我的模型,而我需要恢复预训练模型并将其仅用于预测。

我在这里做错了什么?我应该使用一种特殊的方式来加载模型进行预测吗?

我的训练过程是这样的:

我使用以下代码恢复模型:

0 投票
1 回答
483 浏览

python - 如何让 CatBoost get_object_importance 与 AUC 一起使用?

我在这里复制了这个例子。

该示例试图改进 RMSE(更低-> 更好)。

我有限的理解是 CatBoost 将尝试在底层尽量减少 LogLoss。在这个例子中,较低的 LogLoss 似乎与较低的 RMSE 相关。

除了用 观察 RMSE 之外cb.eval_metrics(validation_pool, ['RMSE'])['RMSE'][-1],该示例并没有真正使用 RMSE 作为自定义损失函数。

就我而言,我有一个二元分类问题,我想最大化 AUC。我不确定我是否应该将代码保持原样,并希望较低的 logloss 与较高的 AUC 相关(它没有),或者如果我需要以不同的方式设置它,也许使用 AUC 作为自定义损失/eval_metric函数,然后importance_values_sign从“正”翻转到“负”。

0 投票
1 回答
631 浏览

python - 非常相同的数据和非常相似的 catboost 模型之间的特征重要性截然不同

让我先解释一下我正在使用的数据集。

我有三套。

  1. 形状为 (1277, 927) 的火车,目标出现的时间约为 12%
  2. 形状为 (174, 927) 的评估集,目标出现的时间约为 11.5%
  3. 支持形状为 (414, 927) 的集合,目标出现的时间约为 10%

这组也是使用时间片构建的。训练集是最旧的数据。支持集合是最新数据。并且 Eval 集在中间集。

现在我正在构建两个模型。

型号1:

预测保持集。

型号2:

除了迭代之外,两个模型都是相同的。第一个模型修复了 300 轮,但它会将模型收缩到最佳迭代。第二个模型使用模型1中的最佳迭代。

但是,当我比较特征重要性时。看起来差别很大。

如您所见,在第一个模型中位于 top3 的特性 x3 在第二个模型中下降。不仅如此,给定特征的模型之间的权重也有很大的变化。模型 1 中存在的大约 60 个特征在模型 2 中不存在。模型 2 中存在的大约 60 个特征在模型 1 中不存在。delta 是 Score_m1 和 Score_m2 之间的差异。我已经看到模型变化在哪里得分不是那么剧烈。当我使用模型 1 或模型 2 时,AUC 和 LogLoss 并没有太大变化。

现在我有以下关于这种情况的问题。

  1. 由于样本数量少,特征数量多,这个模型是否不稳定。如果是这种情况,如何检查?

  2. 此模型中是否有功能只是没有提供有关模型结果的太多信息,并且它正在创建分裂的随机变化。如果这种情况如何检查这种情况?

  3. 这种 catboost 是适合这种情况的模型吗?

任何有关此问题的帮助将不胜感激