gpt4 book ai didi

python - 如何在不重新训练模型的情况下在 XGBoost 特征重要性图中获取实际特征名称?

转载 作者:行者123 更新时间:2023-12-03 15:33:40 25 4
gpt4 key购买 nike

我在 Stackoverflow 上遇到了几个问题,其中群众面临的问题是他们在使用例如

`

scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
my_model_name = XGBClassifier()
my_model_name.fit(X,Y)`

其中 X 和 Y 分别是训练数据和标签,缩放返回 2D NumPy 数组,从而丢失特征名称。

我已经训练了我的 XGBoost 模型,但使用了预处理数据(使用 MinMaxScaler 进行中心和缩放)。因此,我处于类似的情况,其中列名称/功能名称丢失。因此,当我尝试使用 plot_importance(my_model_name) 时,它导致了特征重要性的图,但只有特征名称为 f0、f1、f2 等,而不是数据集中的实际特征名称,这必须是显而易见的。

SO 上的大多数答案都与以不丢失特征名称的方式训练模型有关(例如在数据框列上使用 pd.get_dummies。我有一个查询,即在使用 plot_importance(my_model_name) 时如何获取实际特征名称,不重新训练模型?有没有办法将特征名称 f0、f1、f2 等从原始训练数据(未预处理,带有列名)映射到生成的特征重要性图,以便实际特征名称绘制在图中?非常感谢这方面的任何帮助。

最佳答案

您可以通过以下方式获取功能名称:
model.get_booster().feature_names

关于python - 如何在不重新训练模型的情况下在 XGBoost 特征重要性图中获取实际特征名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54933804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com