python – feature_names必须是唯一的 – Xgboost

我正在为一个非常稀疏的矩阵运行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().

上一篇:Xgboost


下一篇:如何使用XGboost优化sklearn管道,用于不同的`eval_metric`?