首页 > 解决方案 > 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

想法?

标签: rxgboost

解决方案


两个数据框中的因子水平必须相同。此外,因素的顺序也必须相同。

- 如果您在数据加载函数中按频率对因子的顺序进行排序,这可能会成为一个问题,因为使用相同函数加载的两个数据帧可能具有不同顺序的因子。根据数据本身的不同,数据也可能具有不同的因素。


推荐阅读