问题标签 [catboostregressor]

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 回答
579 浏览

jupyter-notebook - 在调整 CatBoost 超参数时遇到问题

我正在做 Kaggle 的 Bulldozer-blue-book 项目。我目前正在使用 CatBoost 来查看是否可以改进我的模型。我这样实例化 CatBoost:

然后我尝试使用 RandomizedSearchCV 调整超参数:

现在,到目前为止,计算机需要很长时间才能将这些参数拟合到搜索中(比我调整 RandomForestRegressor 时要长得多)。昨天我在使用 GPU 时遇到了“内核停止”(不记得 Jupyter 是如何呈现错误的)。今天我正在实现CPU。搜索仍在全力进行,此时感觉模型陷入了无限循环,我只是在等待内核停止。我也尝试过使用 Google Colab,但是用于查找超参数的单元格也按时用完了。我在这里不知所措。

我是使用 CatBoost 的新手,有谁知道我是否错过了一个参数,或者 RandomizedSearchCV 是否没有完全为 Catboost 实现?

0 投票
1 回答
80 浏览

python - Catboost - java api 中的意外行为

我正在用 python 训练一个玩具模型,将模型二进制文件保存到磁盘,然后将其加载到 java (kotlin) 中并进行评估。我的预测在 python 和 kotlin 之间不一致。有人知道我在做什么错吗?

0 投票
1 回答
342 浏览

catboost - 了解 CatBoost 有序提升

在视频中 Anna Veronika Dorogush - CatBoost - 新一代梯度提升

她在 15:30 分钟谈论“对象”。她到底是什么意思?特征?列?行?

经典提升和有序提升之间究竟有什么区别?经典只是将所有决策树加起来吗?有序的是否仅使用之前随机分布的决策树并将它们相加?所以区别只是随机分布?

我希望有人可以帮助我,因为我很难理解这一点。

0 投票
1 回答
576 浏览

python - 无法导入名称“CatBoostRegressor”

我使用 pip install 成功安装了 catboost,但是当我在我的代码中导入 catboostregressor 时,它会抛出以下错误:

有任何想法吗?

0 投票
1 回答
131 浏览

catboost - Catboost calc_feature_statistics 不绘图

运行 catboost 网站 ( https://catboost.ai/docs/concepts/python-reference_catboost_calc_feature_statistics.html ) 上给出的示例脚本时,最后没有出现任何绘图,而只有空白区域。任何建议可能是什么原因?

0 投票
1 回答
107 浏览

regression - catboost 回归/CatBoostRegressor 上的销售预测错误

第 5 季的预期输出

我试过

上面的代码没有错误。

我的问题是:如果输入 5、6、7、8,我的预测值不会改变,但是季节是连续值。我做错了什么,我如何预测第 6、7、8 季等等。

0 投票
0 回答
329 浏览

python - 在 Catboost 中创建自定义损失函数

我正在尝试创建一个自定义的损失函数以在 Catboost 中使用。这是我要实现的功能:

这是我训练模型时遇到的错误

这是我正在尝试训练的模型

0 投票
1 回答
196 浏览

machine-learning - 如何在 CatBoostRegressor 中传递分类特征?

我有数据框汽车。它的结构描述如下:

我想制作一个使用 CatBoostRegressor 预测汽车价格的模型。我正在尝试这样:

我也尝试将 cat_features 放入模型和网格中。但这两种情况都没有帮助。

我该如何处理这个错误?

0 投票
1 回答
304 浏览

python - 将数据加载到 Catboost 池对象中

我正在训练 Catboost 模型并使用 Pool 对象,如下所示:

对于x_train、和y_train,它们来自类型(数据集保存为 Parquet 文件,我使用 PyArrow 将它们读入数据帧)。 是 Catboost 分类器/回归器。x_validationy_validationPandas DataFramemodel

我正在尝试针对大型数据集进行优化,我的问题是:

  1. 将数据集读取到 Pandas DataFrame(使用 PyArrow),然后创建 Pool 对象时,我实际上是否将用于存储数据集的内存量翻了一番?我知道他们复制数据来构建池,它不是参考。
  2. 有没有更有效的方法来创建池?例如直接从libsvm文件加载它?就像这里提到的https://catboost.ai/docs/concepts/python-usages-examples.html#load-the-dataset-from-a-file
  3. 有什么办法可以将数据批量加载到池中?而不是一开始就将所有内容都加载到内存中?
0 投票
0 回答
348 浏览

catboost - CatBoostError:c:/program files(x86)/go agent/pipelines/buildmaster/catboost.git/library/cpp/json/writer/json_value.cpp:457:不是字符串

我实例化了一个 CatBoostRegressor 模型,指定 cat_features,即 model = CatBoostRegressor(cat_features = cat_features) 其中 cat_features 是具有字符串值的列的名称列表,然后使用 model.grid_search() 调整一些超参数,如下所示:

  1. '迭代',
  2. 'model_size_reg',
  3. '学习率',
  4. '深度',
  5. 'l2_leaf_reg',
  6. “随机强度”,
  7. 'per_float_feature_quantization'
执行 model.grid_search() 代码后,它开始微调,详细输出如下:

MetricVisualizer(layout=Layout(align_self='stretch', height='500px'))

最佳测试 = 1.049962963 最佳迭代 = 99

0:损失:1.0499630 最佳:1.0499630 (0) 总:2.85s 剩余:5h 8m 8s

最佳测试 = 0.1011160338 最佳迭代 = 99

1: loss: 0.1011160 best: 0.1011160 (1) total: 5.5s remaining: 4h 56m 39s
...
...
...直到第 1619 次迭代的几行之后:

1619:损失:0.0990363 最佳:0.0923730 (31) 总计:17h 55m 24s 剩余时间:2d 5h 46m 13s 估计最终质量...

引发了一个 CatBoostError,它以以下内容结束:

... <catboost\core.py 目录> in _prepare_train_params(self, X, y, cat_features, text_features, pairs, sample_weight, group_id, group_weight, subgroup_id, pairs_weight, baseline, use_best_model, eval_set, verbose, logging_level, plot, column_description ,verbose_eval,metric_period,静默,early_stopping_rounds,save_snapshot,snapshot_file,snapshot_interval,init_model)1657 _check_param_types(params)1658 params = _params_type_cast(params)-> 1659 _check_train_params(params)1660 1661 eval_set_list = eval_set if isinstance(eval_set)评估集]

_catboost._check_train_params() 中的 _catboost.pyx

_catboost._check_train_params() 中的 _catboost.pyx

CatBoostError:c:/program files(x86)/go agent/pipelines/buildmaster/catboost.git/library/cpp/json/writer/json_value.cpp:457:不是字符串


问题是我的程序文件(x86)文件夹中甚至没有“go agent”目录。我曾尝试在网上搜索此类错误,但最接近的匹配项是“不是地图”,这似乎与我的错误无关,它位于最后,而是“不是字符串”。已经检查了我所有的 cat_features 都是字符串列......那么“不是字符串”到底是什么?

此外,我似乎无法找到指定“_check_train_params()”函数的 .pyx 文件。与具有该文件扩展名的文件最接近的匹配是具有 .pyd 扩展名的文件,我丝毫不知道可以使用什么软件来打开这种扩展名的文件。

任何帮助将不胜感激,在此先感谢。