我实例化了一个 CatBoostRegressor 模型,指定 cat_features,即 model = CatBoostRegressor(cat_features = cat_features) 其中 cat_features 是具有字符串值的列的名称列表,然后使用 model.grid_search() 调整一些超参数,如下所示:
- '迭代',
- 'model_size_reg',
- '学习率',
- '深度',
- 'l2_leaf_reg',
- “随机强度”,
- 'per_float_feature_quantization'
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 扩展名的文件,我丝毫不知道可以使用什么软件来打开这种扩展名的文件。
任何帮助将不胜感激,在此先感谢。