在训练 XGBoost 模型之前,预处理训练数据(如居中或缩放)可能会导致特征名称丢失。大多数 Stack Overflow 上的答案建议以不丢失特征名称的方式训练模型(例如在数据框列上使用 pd.get_dummies)。
我已经使用经过预处理的数据(使用 MinMaxScaler 进行中心化和缩放)训练了 XGBoost 模型。因此,我面临着特征名称丢失的类似情况。
例如:
scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
my_model_name = XGBClassifier()
my_model_name.fit(X,Y)`
X和Y分别是训练数据和标签。上面的缩放返回一个二维NumPy数组,从而丢弃了来自pandas DataFrame的特征名称。
因此,当我尝试使用plot_importance(my_model_name)
时,它会导致特征重要性的绘图,但仅使用诸如f0、f1、f2等特征名称,而不是原始数据集中的实际特征名称。
有没有办法将原始训练数据中的特征名称映射到生成的特征重要性图中,以便在图表中绘制原始特征名称?对此的任何帮助都将不胜感激。