python - 从训练模型中提取特征名称
问题描述
我有一个从 pickle 文件中读取的预训练 XGBoost 模型。当我尝试对包含模型特征集之外的某些列的新数据集进行预测时,我收到了错误消息:
训练数据没有以下字段:column1、column2、...
我可以排除训练数据中不存在的这些列。我不想对列名(有很多)进行硬编码,而是只想找到训练列和预测数据集之间的交集。
有没有一种方法可以从训练模型中提取特征名称(显然模型记录了字段名称),而无需返回我的训练数据集?
解决方案
您可以从腌制模型中检索特征名称,如下所示:
fitted_model.get_booster().feature_names
推荐阅读
- node.js - Node server is not starting(command executes but not start the port)?
- python - 如何解决 NeuroDiffEq 中的错误“mat1 和 mat2 形状不能相乘(1000x1 和 3x512)”?
- php - 当用户键入“/注册”时,机器人插入“0”而不是他们的“用户 ID”
- ruby-on-rails - 您如何将 DateTime.now 与我的任务表模型中的日期时间列进行比较?
- flutter - Unhandled Exception: type '_InternalLinkedHashMap
' is not a subtype of type 'Iterable ' flutter - sharepoint-online - 如何使用电源自动检查给定 SharePoint 网站的用户访问权限
- ruby - kernel_gem.rb:67:在“同步”中:死锁;递归锁定 (ThreadError)
- unit-testing - 忽略 Randoop 中通过 --classlist 或 --testclass 指定的不可见类?
- ios - 目录更改导致命令 PhaseScriptExecution 失败,Xcode 中出现非零退出代码错误(DSYM 脚本)
- python - 提取 div 文本时文本值为空