python - cat boost 特征在训练数据中具有“分类”类型,但在测试数据集中具有“浮点”类型
问题描述
我正在使用 catboostclassifier,我有一个训练数据集和一个验证数据集。每个数据集都有相同的 5 列,并且有一列名为 'colC' 是分类的(列 'colC' 被格式化为 int)。我测试了数据框,并且在“colC”列中,两个数据框的数据类型相同。
当我执行下一个代码时,出现错误:
val_pool = Pool(X_validation, y_validation)
estimator.fit(X_train, y_train, eval_set = val_pool, sample_weight = sample_weights, cat_features = ['colC'])
错误是下一个:
catboost/libs/data/features_layout.cpp:391: Feature #3 has 'Categorical' type in training data, but 'Float' type in test dataset #0
可能是哪个原因?
解决方案
对于遇到这篇文章的其他人:当我遇到这个问题时,我设法通过在 Pool 中指定 cat_features 列表以及 fit 来解决这个问题。
val_pool = Pool(X_validation, y_validation, cat_features = ['colC'])
推荐阅读
- omnet++ - 如何通过 omnet++ Veins 中的电缆将 RSU 连接到控制器节点?
- python - Python Flask:为什么日志IP和手机IP不同?
- bash - 用于 bash 脚本
- html - 仅使用html代码在外部单击时如何关闭消息框(div)(不能将jquery用作页面只接受html代码?
- ios - TokBox webrtc 在 iOS 上失败
- javascript - 使用 React 和 Quill.js 加载时间很慢
- xml - Android Studio 和 Kotlin:ListView 不会使用 CoordinatorLayout 中的锚点固定在 app_bar 下方
- excel - 在工作簿 VBA 的第二个工作表上应用过滤器
- javascript - 使用 Set .forEach() 将项目添加到对象的指定属性
- laravel - Laravel 新命令不再适用于 MAC