r - XGBoost 错误:功能名称不同
问题描述
XGBoost 给出了这个错误:
Error in predict.xgb.Booster(m, newdata = data.matrix(.newdata), ...) :
Feature names stored in `object` and `newdata` are different!
但是,我运行的所有这些检查都没有问题:
dim(df1)[2] == dim(df2)[2]
names(df1) == names(df2)
names(df1) %in% names(df2)
names(df1) %in% names(df2)
df1Types = sapply(df1, class)
df2Types = sapply(df2, class)
df1Types == df2Types
想法?
解决方案
两个数据框中的因子水平必须相同。此外,因素的顺序也必须相同。
- 如果您在数据加载函数中按频率对因子的顺序进行排序,这可能会成为一个问题,因为使用相同函数加载的两个数据帧可能具有不同顺序的因子。根据数据本身的不同,数据也可能具有不同的因素。
推荐阅读
- java - 如何根据条件从数组中删除元素?爪哇
- python - 如何从 python 向 C 传递不同大小的数组列表?
- javascript - 循环中的摩卡正则表达式长度计算不起作用
- python - 在 shell 或 Python 中使用 SFTP 递归获取文件列表,无需额外的库
- snakemake - snakemake 脚本访问标准输入/标准输出以进行流处理
- python - 屏蔽感兴趣区域后减小光栅大小
- javascript - 如何在嵌套对象中映射特定键值
- vue.js - 将渲染的 HTML 映射到 Vue.js 中的代码行
- laravel - 十月 CMS:在主题之间共享部分内容
- c# - xamarin 表单,自动完成位置地址