我正在为一个非常稀疏的矩阵运行xgboost模型.
我收到了这个错误. ValueError:feature_names必须是唯一的
我怎么处理这个?
这是我的代码.
yprob = bst.predict(xgb.DMatrix(test_df))[:,1]
解决方法:
根据xgboost
source code documentation,此错误仅发生在one place – 在DMatrix内部函数中.这是源代码摘录:
if len(feature_names) != len(set(feature_names)):
raise ValueError('feature_names must be unique')
所以,错误文本在这里很文字;您的test_df至少有一个重复的功能/列名称.
你在这篇文章上标记了大熊猫;这表明test_df是一个Pandas DataFrame.在这种情况下,DMatrix literally runs df.columns
提取feature_names.检查test_df是否有重复的列名,删除或重命名它们,然后再次尝试DMatrix().