我从pickle文件中读取了预先训练过的XGBoost模型。当我尝试使用模型的功能集之外的某些列对新数据集进行预测时,我收到了错误消息:
训练数据没有以下字段:column1,column2,...
我可以排除培训数据中不存在的这些列。我想找到训练列和预测数据集之间的交集,而不是硬编码列名(有很多)。
有没有办法从训练模型中提取特征名称(显然模型记录了字段名称),而不必返回我的训练数据集?
其强制性要求预测数据集应仅包含训练数据集中存在的那些列。甚至有意义的是不要包含额外的列,因为权重是根据您的训练数据集学习的。包括除训练数据集之外的任何额外列不会提供任何值或提高您的准确性,因为当您预测所做的全部操作时,将学习的模型权重与新值相乘。确保不要包含任何额外的预测功能。