如何从模型生成中保留 Scikit-learn OneHotEncoding 以用于新数据?

How to retain Scikit-learn OneHotEncoding from model generation to use on new data?

我正在使用 OneHotEncoding 为分类问题生成虚拟变量。当用于训练数据时,我得到大约 300 个虚拟列,这很好。但是,当我输入新数据(行数较少)时,OneHotEncoding 仅生成约 250 个虚拟对象,考虑到较小的数据集,这并不奇怪,但我无法将新数据用于模型,因为特征不一致。

有没有办法保留 OneHotEncoding 架构以用于新的传入数据?

我认为您在训练和测试数据集上都使用了 fit_transform,这不是正确的方法,因为编码模式必须在两个数据集上保持一致,模型才能理解来自特征的信息.

正确的做法是

  • fit_transform 训练数据
  • transform 测试数据

通过这种方式,您将获得一致的列数。