Python 如何保留Scikit从模型生成中学习OneHotEncoding以用于新数据?

Python 如何保留Scikit从模型生成中学习OneHotEncoding以用于新数据?,python,scikit-learn,one-hot-encoding,Python,Scikit Learn,One Hot Encoding,我正在使用onehotcodeding为分类问题生成假人。在训练数据上使用时,我得到大约300个虚拟列,这很好。但是,当我输入新数据(行数较少)时,OneHotEncoding只生成约250个假人,考虑到较小的数据集,这并不奇怪,但是我不能将新数据用于模型,因为特征不对齐 有没有办法保留用于新传入数据的OneHotEncoding模式?我认为您在训练和测试数据集上都使用了fit_transform,这不是正确的方法,因为编码模式必须在两个数据集上保持一致,以便模型理解来自特征的信息 正确的方法是

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


有没有办法保留用于新传入数据的
OneHotEncoding
模式?

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

正确的方法是做

  • 对训练数据进行拟合变换
  • 对测试数据进行变换

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

你的密码在哪里?谢谢你的回答。对于任何遇到这个问题的人来说,这里有一个形式更好的问题: