[我在Stackoverflow上遇到了几个问题,大众面临的问题是,他们在使用例如拟合/训练XGBoost模型之前预处理训练数据,例如使用中心和比例等
`
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。我有一个疑问,当我使用[C0 ],而无需重新训练模型吗?有没有办法将特征名称f0,f1,f2等从原始训练数据(未经预处理,带有列名称)映射到生成的特征重要性图,以便实际特征名称被绘制在图表中吗?在这方面的任何帮助都将受到高度赞赏。