解决xgboost报错 : ValueError: feature_names mismatch

编程入门 行业动态 更新时间:2024-10-22 09:48:20

问题原因

已使用训练数据完成xgboost模型的训练,后期应用时,加载完成模型,使用新数据进行预测时报错
ValueError: feature_names mismatch,具体如下图。

导致这个问题原因可能有多种情况,我这里对我的情况解释一下。

我这里是由于训练数据划分好,使用的 X_train 训练, 后面经验证集 X_test 跑出结果,得到auc都没有问题。
保存好模型。

在后期再应用时,重新加载模型,拿另一批数据进来再跑,比如重新获取的新数据 df_X
就会出现这个报错。

报错原因是新DataFrame中字段的顺序和之前的不一样。

即使新数据中,字段的总数和所有字段名称能对应上,但是字段顺序对应不上,也会出现这个问题。
xgboost中,如果顺序对应不上,那么加载后预测结果时,默认还是使用以前的顺序,就造成了实际字段不匹配。
出现上面的报错。

解决方法

找到以前训练这个模型时使用的 X_train,使用 X_train.columns
使用下面命令重新给新数据排个序,这样就把新的数据字段顺序 和 以前训练时使用的字段顺序保持一致。

df_X = df_X[X_train.columns]

df_X 再拿去预测,就不会出问题了(当然前提是报错是这个原因,可能有其他原因)。

更多推荐

解决xgboost报错 : ValueError: feature_names mismatch

本文发布于:2023-06-14 04:42:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1439279.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   xgboost   ValueError   mismatch   feature_names

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!